校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

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

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

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

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

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

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

以下為簡單示例:

復制代碼 代碼如下:
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)) 
    //同樣,當函數(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() { 
    //值類型調用方法 
    personValue := PersonD{101, "Will Smith"} 
    personValue.valueShowName() 
    personValue.pointShowName() 
 
    //指針類型調用方法 
    personPointer := PersonD{102, "Paul Tony"} 
    personPointer.valueShowName() 
    personPointer.pointShowName() 
 
    //與普通函數(shù)不同,接收者為指針類型和值類型的方法,指針類型和值類型的變量均可相互調用 
}

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

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

標簽:深圳 湘潭 運城 本溪 九江 喀什 晉城 楚雄

巨人網(wǎng)絡通訊聲明:本文標題《Go語言中普通函數(shù)與方法的區(qū)別分析》,本文關鍵詞  語,言中,普通,函數(shù),與,方法,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Go語言中普通函數(shù)與方法的區(qū)別分析》相關的同類信息!
  • 本頁收集關于Go語言中普通函數(shù)與方法的區(qū)別分析的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 潼关县| 齐齐哈尔市| 巩留县| 南投县| 黔东| 同江市| 浦城县| 东辽县| 井研县| 延川县| 崇州市| 华安县| 麟游县| 九龙城区| 和平区| 漳浦县| 忻州市| 大余县| 东兰县| 铁岭县| 竹北市| 兴隆县| 青阳县| 鄂托克前旗| 河源市| 林甸县| 大兴区| 新余市| 乌拉特中旗| 崇阳县| 迁西县| 张掖市| 石狮市| 册亨县| 朝阳区| 武夷山市| 稷山县| 新源县| 寿阳县| 彭阳县| 石家庄市|