有時(shí)候看別人的go代碼,發(fā)現(xiàn)他們有的在代碼里面用了指針,有的不使用。
在海淀等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需策劃,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),成都全網(wǎng)營(yíng)銷推廣,外貿(mào)網(wǎng)站建設(shè),海淀網(wǎng)站建設(shè)費(fèi)用合理。假設(shè)有個(gè)結(jié)構(gòu)體類型叫做Person,發(fā)現(xiàn)有些方法會(huì)用func methodA (*person Person)作為參數(shù),或者使用 func *(person Person) methodA()作為結(jié)構(gòu)體自己的方法,也就是person這個(gè)結(jié)構(gòu)體。
可以直接調(diào)用methodA,但是用的是指針。
或者在map結(jié)構(gòu)里面看到var personMap map[string]*Person 的用法
如果是從java轉(zhuǎn)過來golang的話,可能不太好理解。因?yàn)閖ava的世界是沒有指針的,直接傳遞過去就可以用了,但是到golang上需要注意很多地方。
那么什么時(shí)候該用呢?為什么有些地方需要用呢?
不使用指針的話,某些情況是沒法賦值給結(jié)構(gòu)體的
接下來看一段代碼,這段代碼不使用任何指針,先定義一堆用于測(cè)試的對(duì)象
type Person struct { //person結(jié)構(gòu)體,包含年齡,名稱,車 age int name string car Car } type Car struct { //person名下的車 name string //車的名字 } 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獲取到地址。
以上就是golang 什么時(shí)候使用指針的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司其它相關(guān)文章!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。