道歉,如果这是显而易见的;对Golang来说相对较新。
我需要传递一个带有指针接收器的函数作为方法的参数,并将该函数指针存储在其他结构中等。
没有接收器,这很简单。对于诸如......的功能。
func Sample(ctx *Context, arg int) (err error)
...我可以使用语法...
创建一个函数类型type SampleFunc func (ctx *Context, arg int) (err error)
...但是对于具有接收器的功能,例如......
func (ctx *Context) Sample(arg int) (err error)
...什么是类型定义的语法?我试过......
type SampleFunc func (ctx *Context) (arg int) (err error)
...但这只会产生syntax error: unexpected ( after top level declaration
感谢您的建议。
答案 0 :(得分:2)
语法是
type SampleFunc func (ctx *Context, arg int) (err error)
将Sample
方法分配给SampleFunc
类型的变量,如下所示:
var f SampleFunc = (*Context).Sample
指针接收器方法需要(*)
部分。这样称呼:
f(ctx, 1)