說我有這個: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)}當 helper func 接收到 h.Mount(一個 func)時,它可以直接調用它,還是需要引用處理程序 h 才能正確調用它?這會按原樣編譯和運行。
1 回答
元芳怎么了
TA貢獻1798條經驗 獲得超7個贊
是的。Go 書將此稱為方法值。
通常我們在同一個表達式中選擇和調用一個方法,就像在 p.Distance() 中一樣,但是可以將這兩個操作分開。選擇器 p.Distance 產生一個方法值,一個將方法 (Point.Distance) 綁定到特定接收者值 p 的函數。然后可以在沒有接收者值的情況下調用此函數;它只需要非接收方參數。
- 1 回答
- 0 關注
- 152 瀏覽
添加回答
舉報
0/150
提交
取消
