猿问

是否自动绑定函数到结构?

说我有这个:


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 才能正确调用它?这会按原样编译和运行。


杨魅力
浏览 107回答 1
1回答

元芳怎么了

是的。Go 书将此称为方法值。通常我们在同一个表达式中选择和调用一个方法,就像在 p.Distance() 中一样,但是可以将这两个操作分开。选择器 p.Distance 产生一个方法值,一个将方法 (Point.Distance) 绑定到特定接收者值 p 的函数。然后可以在没有接收者值的情况下调用此函数;它只需要非接收方参数。
随时随地看视频慕课网APP

相关分类

Go
我要回答