濮阳杆衣贸易有限公司

主頁 > 知識庫 > Go語言中普通函數(shù)與方法的區(qū)別分析

Go語言中普通函數(shù)與方法的區(qū)別分析

熱門標(biāo)簽:海外照相館地圖標(biāo)注入駐 滁州自建外呼系統(tǒng) 旅游廁所如何電子地圖標(biāo)注 外呼系統(tǒng)多少錢一年 經(jīng)常接到推銷電話機(jī)器人的電話 工商信用卡外呼系統(tǒng)教程 外呼系統(tǒng)如何接收服務(wù)密碼 客服級電銷機(jī)器人 智能營銷軟件

本文實例分析了Go語言中普通函數(shù)與方法的區(qū)別。分享給大家供大家參考。具體分析如下:

1.對于普通函數(shù),接收者為值類型時,不能將指針類型的數(shù)據(jù)直接傳遞,反之亦然。

2.對于方法(如struct的方法),接收者為值類型時,可以直接用指針類型的變量調(diào)用方法,反過來同樣也可以。

以下為簡單示例:

復(fù)制代碼 代碼如下:
package structTest 
 
//普通函數(shù)與方法的區(qū)別(在接收者分別為值類型和指針類型的時候) 
//Date:2014-4-3 10:00:07 
 
import ( 
    "fmt" 

 
func StructTest06Base() { 
    structTest0601() 
    structTest0602() 

 
//1.普通函數(shù) 
//接收值類型參數(shù)的函數(shù) 
func valueIntTest(a int) int { 
    return a + 10 

 
//接收指針類型參數(shù)的函數(shù) 
func pointerIntTest(a *int) int { 
    return *a + 10 

 
func structTest0601() { 
    a := 2 
    fmt.Println("valueIntTest:", valueIntTest(a)) 
    //函數(shù)的參數(shù)為值類型,則不能直接將指針作為參數(shù)傳遞 
    //fmt.Println("valueIntTest:", valueIntTest(a)) 
    //compile error: cannot use a (type *int) as type int in function argument 
 
    b := 5 
    fmt.Println("pointerIntTest:", pointerIntTest(b)) 
    //同樣,當(dāng)函數(shù)的參數(shù)為指針類型時,也不能直接將值類型作為參數(shù)傳遞 
    //fmt.Println("pointerIntTest:", pointerIntTest(b)) 
    //compile error:cannot use b (type int) as type *int in function argument 

 
//2.方法 
type PersonD struct { 
    id   int 
    name string 

 
//接收者為值類型 
func (p PersonD) valueShowName() { 
    fmt.Println(p.name) 

 
//接收者為指針類型 
func (p *PersonD) pointShowName() { 
    fmt.Println(p.name) 

 
func structTest0602() { 
    //值類型調(diào)用方法 
    personValue := PersonD{101, "Will Smith"} 
    personValue.valueShowName() 
    personValue.pointShowName() 
 
    //指針類型調(diào)用方法 
    personPointer := PersonD{102, "Paul Tony"} 
    personPointer.valueShowName() 
    personPointer.pointShowName() 
 
    //與普通函數(shù)不同,接收者為指針類型和值類型的方法,指針類型和值類型的變量均可相互調(diào)用 
}

希望本文所述對大家的Go語言程序設(shè)計有所幫助。

您可能感興趣的文章:
  • Go語言中append函數(shù)用法分析
  • GO語言延遲函數(shù)defer用法分析
  • Go語言的os包中常用函數(shù)初步歸納
  • Go語言常見哈希函數(shù)的使用
  • 舉例講解Go語言中函數(shù)的閉包使用
  • Go語言里的new函數(shù)用法分析
  • Golang的os標(biāo)準(zhǔn)庫中常用函數(shù)的整理介紹
  • 深入解析golang編程中函數(shù)的用法
  • Golang學(xué)習(xí)筆記(五):函數(shù)
  • Golang教程之不可重入函數(shù)的實現(xiàn)方法

標(biāo)簽:深圳 湘潭 運城 本溪 九江 喀什 晉城 楚雄

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Go語言中普通函數(shù)與方法的區(qū)別分析》,本文關(guān)鍵詞  語,言中,普通,函數(shù),與,方法,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Go語言中普通函數(shù)與方法的區(qū)別分析》相關(guān)的同類信息!
  • 本頁收集關(guān)于Go語言中普通函數(shù)與方法的區(qū)別分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    凉城县| 宁南县| 镇原县| 新闻| 凤山市| 满城县| 河北区| 平远县| 菏泽市| 绍兴市| 汪清县| 咸宁市| 通海县| 平顶山市| 大埔县| 乌鲁木齐县| 青神县| 建水县| 来安县| 新巴尔虎右旗| 建始县| 孟津县| 福泉市| 九龙坡区| 泉州市| 新乡县| 姚安县| 嘉荫县| 利辛县| 宁阳县| 黑河市| 平凉市| 虞城县| 休宁县| 日照市| 建瓯市| 鹤岗市| 广宁县| 揭西县| 东平县| 增城市|