我试图创建指向具有方法接收器的函数的函数指针。但是,我不知道如何使它工作(如果可能)?
本质上,我有以下几点:
type Foo struct {...}
func (T Foo) Bar bool {
...
}
type BarFunc (Foo) func() bool // Does not work.
代码的最后一行给出了错误
syntax error: unexpected func, expecting semicolon or newline
如果要创建指向方法的函数指针,则有两种方法。首先本质上是将具有两个参数的方法转换为具有一个参数的函数:
type Summable int
func (s Summable) Add(n int) int {
return s+n
}
var f func(s Summable, n int) int = (Summable).Add
// ...
fmt.Println(f(1, 2))
第二种方法会将功能“绑定”到方法的接收者:
s := Summable(1)
var f func(n int) int = s.Add
fmt.Println(f(2))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句