第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

值方法的用途

func?(person?Person)?Grow()?{
????person.Age++
}
p?:=?Person{"Robert",?"Male",?33,?"Beijing"}
p.Grow()
fmt.Printf("%v\n",?p)

如果執(zhí)行p.Grow()不能達到預期目的的話,要這個·值方法·功能有何用處呢?至少在這個例子里是沒用的啊


正在回答

1 回答

這個打印結果直覺上是34,但其實是33,為什么?

對于值類型方法來說,接受的標識符是值的一個拷貝的副本,不是值本身。執(zhí)行Grow方法的person.Age++語句,會使副本的Age值變?yōu)?4,但是打印的p的Age還是33(因為他們兩個并不是一個實例,另一個只是個副本)。

當我們把Grow方法變成指針方法后,打印的值就變成34了,因為此時傳遞的值是指針的副本,指針的副本任然指向p的值。所以累加操作會作用到person.Age上。


https://blog.csdn.net/weixin_33807284/article/details/92073495

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

值方法的用途

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號