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

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

golang規(guī)范中有關(guān)方法值的部分中的“非接口方法”是什么意思?

golang規(guī)范中有關(guān)方法值的部分中的“非接口方法”是什么意思?

Go
慕妹3146593 2023-07-17 14:37:27
Go 編程語言規(guī)范說:與選擇器一樣,使用指針對具有值接收器的非接口方法的引用將自動取消對該指針的引用:pt.Mv 相當(dāng)于 (*pt).Mv。和:與方法調(diào)用一樣,使用可尋址值對具有指針接收器的非接口方法的引用將自動采用該值的地址:t.Mp 相當(dāng)于 (&t).Mp。那么,在給定的上下文中,什么是非接口方法呢?
查看完整描述

2 回答

?
明月笑刀無情

TA貢獻1828條經(jīng)驗 獲得超4個贊

接口方法意味著您引用(您調(diào)用)的方法是對接口值(其方法集包含該方法)的調(diào)用。同樣,非接口方法意味著您引用(調(diào)用)的方法不是對接口值(而是對具體類型)的調(diào)用。


例如:


var r io.Reader = os.Stdin

r.Read(nil) // Interface method: type of r is an interface (io.Reader)


var p image.Point = image.Point{}

p.String() // Non-interface method, p is a concrete type (image.Point)

要演示自動取消引用和地址獲取,請參閱以下示例:


type myint int


func (m myint) ValueInt() int { return int(m) }


func (m *myint) PtrInt() int { return int(*m) }


func main() {

    var m myint = myint(1)


    fmt.Println(m.ValueInt()) // Normal

    fmt.Println(m.PtrInt())   // (&m).PtrInt()


    var p *myint = new(myint)

    *p = myint(2)


    fmt.Println(p.ValueInt()) // (*p).ValueInt()

    fmt.Println(p.PtrInt())   // Normal

}

它輸出(在Go Playground上嘗試):


1

1

2

2


查看完整回答
反對 回復(fù) 2023-07-17
?
浮云間

TA貢獻1829條經(jīng)驗 獲得超4個贊

type T struct {}


func (t *T) f() {}


func main() {

  x := T{}

  x.f()

}

上面,xf是一個非接口方法。


查看完整回答
反對 回復(fù) 2023-07-17
  • 2 回答
  • 0 關(guān)注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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