亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

golang方法的參數問題?

golang方法的參數問題?

Go
陪伴而非守候 2019-02-05 10:06:15
golang方法的參數問題
查看完整描述

3 回答

?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

  1. main中的a和foo中的a沒有任何關系。在foo中的a,只是一個局部變量的名字,這個a被稱為接收器(receiver name)。main中的a,也只是一個局部變量的名字,二者變量名相同而已。

  2. foo中的a是類型A的接收器名字,foo是類型A的一個函數,a其實就是代表類型A的一個實例,即使例子中a是沒有用到的,但不能缺少。


查看完整回答
反對 回復 2019-03-16
?
浮云間

TA貢獻1829條經驗 獲得超4個贊

在 golang 里面,type 可以類比面向對象語言里面 類;該 類型 的變量可以類比面向對象語言的 對象。

main 中的 a 就是你實例化的對象;foo 中的 a 就相當于 this(即當前對象),你可以想象一個場景:如果你想在 foo 中使用 Name 怎么辦?

  1. foo 里面的 a 相當于是 main 里面的 a 的(但 如果類型 A 在其他包中定義,main 里面的 a 是訪問不到私有成員的)

  2. 你可以類比面向對象里面的 this。如果你不用不到 a 的話,完全可以不寫


你還不理解的話繼續在下面評論里面追問吧,我這里可能描述的不好,因為我暫時沒想好怎么描述


查看完整回答
反對 回復 2019-03-16
?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

func (a A) foo(){}
這是個語法糖,翻譯過來就是
func foo(a A){

}

這里的a 可以是任何名字,一般我們用this,使用指針傳參。

func(this *A) foo(){}


查看完整回答
反對 回復 2019-03-16
  • 3 回答
  • 0 關注
  • 793 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號