说我有这个: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 关注
- 105 浏览
添加回答
举报
0/150
提交
取消