這篇文章主要介紹go語言中普通函數(shù)與方法有什么區(qū)別,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)海鹽,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108
區(qū)別:對(duì)于普通函數(shù),接收者為值類型時(shí),不能將指針類型的數(shù)據(jù)直接傳遞,反之亦然;對(duì)于方法,接收者為值類型時(shí),可以直接用指針類型的變量調(diào)用方法,反過來同樣也可以。
Go語言中普通函數(shù)與方法的區(qū)別
1、對(duì)于普通函數(shù),接收者為值類型時(shí),不能將指針類型的數(shù)據(jù)直接傳遞,反之亦然。
2、對(duì)于方法(如struct的方法),接收者為值類型時(shí),可以直接用指針類型的變量調(diào)用方法,反過來同樣也可以。
以下為簡單示例:
package structTest //普通函數(shù)與方法的區(qū)別(在接收者分別為值類型和指針類型的時(shí)候) //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í),也不能直接將值類型作為參數(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ù)與方法有什么區(qū)別”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
本文名稱:go語言中普通函數(shù)與方法有什么區(qū)別
網(wǎng)站路徑:http://muchs.cn/article28/jpijcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、、網(wǎng)站導(dǎo)航、定制開發(fā)、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)