【问题标题】:Syntax assist for method type definition?方法类型定义的语法辅助?
【发布时间】:2017-06-01 04:02:54
【问题描述】:

如果这很明显,我们深表歉意;对 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

感谢您的建议。

【问题讨论】:

    标签: go


    【解决方案1】:

    语法是

    type SampleFunc func (ctx *Context, arg int) (err error)
    

    Sample 方法分配给SampleFunc 类型的变量,如下所示:

    var f SampleFunc = (*Context).Sample
    

    指针接收器方法需要(*) 部分。像这样称呼它:

     f(ctx, 1)
    

    playground example

    【讨论】:

    • 哦,我明白了。感谢您抽出宝贵的时间;非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-19
    • 2013-06-11
    • 1970-01-01
    • 2015-12-25
    • 1970-01-01
    • 2015-03-27
    • 1970-01-01
    相关资源
    最近更新 更多