我读了一些奇怪的代码,它们将一个方法转换为一个函数,该函数的第一个参数是指向该方法结构的指针.
我写了一个例子来演示它:
package main
import "fmt"
type fooS struct{}
func (s *fooS) fooF(fooArg interface{}) {
fmt.Println("fooF: ", fooArg)
}
type wowS struct {
callback func(s *fooS, fooArg interface{})
}
func main() {
wow := new(wowS)
wow.callback = (*fooS).fooF // strange
wow.callback(nil, 123)
}
Run Code Online (Sandbox Code Playgroud)
该示例的语法很奇怪,但没有错误.
谁能告诉我这些代码是如何工作的还是给我一份关于它们的官方文件?
谢谢:)
go ×1