a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Golang > 正文

Go語言中普通函數與方法的區別分析

2020-04-01 19:22:01
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Go語言中普通函數與方法的區別,以實例形式對比分析了普通函數與方法使用時的區別與相關技巧,需要的朋友可以參考下
 

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

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

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

以下為簡單示例:

 

復制代碼代碼如下:
package structTest  
  
//普通函數與方法的區別(在接收者分別為值類型和指針類型的時候)  
//Date:2014-4-3 10:00:07  
  
import (  
    "fmt"  
)  
  
func StructTest06Base() {  
    structTest0601()  
    structTest0602()  
}  
  
//1.普通函數  
//接收值類型參數的函數  
func valueIntTest(a int) int {  
    return a + 10  
}  
  
//接收指針類型參數的函數  
func pointerIntTest(a *int) int {  
    return *a + 10  
}  
  
func structTest0601() {  
    a := 2  
    fmt.Println("valueIntTest:", valueIntTest(a))  
    //函數的參數為值類型,則不能直接將指針作為參數傳遞  
    //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))  
    //同樣,當函數的參數為指針類型時,也不能直接將值類型作為參數傳遞  
    //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()  
  
    //與普通函數不同,接收者為指針類型和值類型的方法,指針類型和值類型的變量均可相互調用  
}

 

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 99re6在线| 狠狠操麻豆 | 国产女人网 | 免费一区二区 | 国产www在线 | 精品免费一区 | 成人在线不卡视频 | 国产精品入口麻豆www | 一区二区精品在线 | 日本一区二区视频在线观看 | 国精产品一区一区三区免费完 | 亚洲精品福利网站 | 日韩精品免费一区二区夜夜嗨 | 99精品免费在线 | 四虎最新紧急入口 | 能免费看av的网站 | 99久久99久久精品国产片果冻 | 精品久久久久久久久久久 | 欧美一区二区视频 | 国产精品一区二区三区不卡 | 综合久久综合 | 久久91 | 久久久婷婷| 亚日韩一区 | 久久全国免费视频 | 国产欧美精品一区二区 | 精品视频在线观看一区二区 | 日韩视频免费在线 | www.超碰在线 | 欧美视频网站 | 精产国产伦理一二三区 | 日本三级国产 | 成人午夜视频在线观看 | 欧美日韩国产综合在线 | 国产精品久久久久久一级毛片 | 免费的黄色 | 在线观看中文字幕 | 国产一区二区三区免费 | 亚洲麻豆| 久久国产精品无码网站 | 中文字幕在线观看免费视频 |