說我有這個(gè):type Handler struct{}func helper(f func()){ f() // calls h.Mount() or just Mount() w/o reference to h?}func (h Handler) Mount() {}func init(){ h:=Handler{} helper(h.Mount)}當(dāng) helper func 接收到 h.Mount(一個(gè) func)時(shí),它可以直接調(diào)用它,還是需要引用處理程序 h 才能正確調(diào)用它?這會按原樣編譯和運(yùn)行。
1 回答

元芳怎么了
TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超7個(gè)贊
是的。Go 書將此稱為方法值。
通常我們在同一個(gè)表達(dá)式中選擇和調(diào)用一個(gè)方法,就像在 p.Distance() 中一樣,但是可以將這兩個(gè)操作分開。選擇器 p.Distance 產(chǎn)生一個(gè)方法值,一個(gè)將方法 (Point.Distance) 綁定到特定接收者值 p 的函數(shù)。然后可以在沒有接收者值的情況下調(diào)用此函數(shù);它只需要非接收方參數(shù)。
- 1 回答
- 0 關(guān)注
- 128 瀏覽
添加回答
舉報(bào)
0/150
提交
取消