站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        golang 什么時(shí)候使用指針

        golang 什么時(shí)候使用指針

        有時(shí)候看別人的go代碼,發(fā)現(xiàn)他們有的在代碼里面用了指針,有的不使用。

        假設(shè)有個(gè)結(jié)構(gòu)體類(lèi)型叫做Person,發(fā)現(xiàn)有些方法會(huì)用func methodA (*person Person)作為參數(shù),或者使用 func *(person Person) methodA()作為結(jié)構(gòu)體自己的方法,也就是person這個(gè)結(jié)構(gòu)體 (推薦學(xué)習(xí):go)

        可以直接調(diào)用methodA,但是用的是指針。

        或者在map結(jié)構(gòu)里面看到var personMap map[string]*Person 的用法

        如果是從java轉(zhuǎn)過(guò)來(lái)golang的話,可能不太好理解。因?yàn)閖ava的世界是沒(méi)有指針的,直接傳遞過(guò)去就可以用了,但是到golang上需要注意很多地方。

        那么什么時(shí)候該用呢?為什么有些地方需要用呢?

        不使用指針的話,某些情況是沒(méi)法賦值給結(jié)構(gòu)體的

        接下來(lái)看一段代碼,這段代碼不使用任何指針,先定義一堆用于測(cè)試的對(duì)象

        type Person struct {  //person結(jié)構(gòu)體,包含年齡,名稱(chēng),車(chē)     age  int     name string     car  Car }  type Car struct {  //person名下的車(chē)     name string  //車(chē)的名字 }  var personMap map[string]Person   //一個(gè)存放person的map  func setName(person Person, name string) { //給參數(shù)person設(shè)置名字     person.name = name }  func (person Person) setName(name string) {  //設(shè)置名字     person.name = name } func printName(person Person){  //打印person的名字     fmt.Println(person.name) } func (person Person)printName(){  //結(jié)構(gòu)體person自己支持打印名字     fmt.Println(person.name) }

        所以得出結(jié)論,當(dāng)我們需要修改結(jié)構(gòu)體的變量?jī)?nèi)容的時(shí)候,方法傳入的結(jié)構(gòu)體變量參數(shù)需要使用指針,也就是結(jié)構(gòu)體的地址

        需要修改map中的架構(gòu)體的變量的時(shí)候也需要使用結(jié)構(gòu)體地址作為map的value

        如果僅僅是讀取結(jié)構(gòu)體變量,可以不使用指針,直接傳遞引用即可

        *type 這里的type這個(gè)變量存放的東西是地址,這點(diǎn)需要明確,需要使用&type獲取到地址。

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 国产精品白丝AV嫩草影院| 国产欧美日本精品| 国产高清在线精品一区二区三区| 无码日韩精品一区二区免费暖暖 | 在线精品亚洲| 国产精品被窝福利一区| 国产精品久久久久久福利漫画| 亚洲国产精品综合久久网络| 亚洲国产精品第一区二区| 日韩精品无码久久久久久| 午夜福利麻豆国产精品| 国产日韩精品无码区免费专区国产 | 好湿好大硬得深一点动态图91精品福利一区二区 | 亚洲国产精品SSS在线观看AV | 国产精品你懂得| 99在线精品视频观看免费| 亚洲国产精品高清久久久| 少妇亚洲免费精品| 久久99精品久久久久久齐齐| 国产精品福利在线观看免费不卡 | 无码人妻精品一区二区三区99仓本| 久久国产美女免费观看精品| 国产精品 日韩欧美| 四虎国产精品永久一区| 国产精品自产拍在线观看| 91麻豆精品视频在线观看| 国产乱人伦偷精品视频AAA| 精品国产一区二区三区不卡| 无码精品人妻一区二区三区漫画 | 国产精品福利在线播放| 91精品国产综合久久久久久| 久久精品亚洲一区二区三区浴池| 亚洲AV永久无码精品网站在线观看 | 精品国产综合成人亚洲区| 国产精品久久午夜夜伦鲁鲁| 人妻AV一区二区三区精品| 日韩精品极品视频在线观看免费| 久久夜色精品国产网站| 精品国产乱码久久久久久郑州公司| 久久99精品国产麻豆| 精品国产VA久久久久久久冰|