您好,登錄后才能下訂單哦!
golang中保留了C中的值和指針的區(qū)別,但對于指針的繁瑣用法進行了簡化,引入了"引用"的概念,所以在go語言中,你不用擔心因為直接操作內(nèi)存而引起各式各樣的錯誤。
運算符只有 & 和 ,一個是取地址一個是取值(解析地址)。
func main(){
var i int
i = 1
var p *int
p = &i
fmt.Printf("i=%d,p=%d,*p=%d\n",i,p,*p)
*p =2
fmt.Printf("i=%d,p=%d,*p=%d\n",i,p,*p)
i = 3
fmt.Printf("i=%d,p=%d,*p=%d\n",i,p,*p)
}
output:
i=1,p=824634302464,p=1
i=2,p=824634302464,p=2
i=3,p=824634302464,*p=3
type abc struct{
v int
}
func (a abc)aaa(){
a.v = 1
fmt.Printf("1:%d\n",a.v)
}
func (a *abc)bbb(){
fmt.Printf("2:%d\n",a.v)
a.v = 2
fmt.Printf("3:%d\n",a.v)
}
func (a *abc)ccc(){
fmt.Printf("4:%d\n",a.v)
}
func main(){
aobj:=abc{}
aobj.aaa()
aobj.bbb()
aobj.ccc()
}
output:
1:1
2:0
3:2
4:2
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。