如果这是显而易见的,我们深表歉意; 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
感谢您的建议。
最佳答案
语法是
type SampleFunc func (ctx *Context, arg int) (err error)
将 Sample
方法分配给 SampleFunc
类型的变量,如下所示:
var f SampleFunc = (*Context).Sample
指针接收器方法需要 (*)
部分。像这样调用它:
f(ctx, 1)
关于go - 方法类型定义的语法辅助?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44293693/