为了账号安全,请及时绑定邮箱和手机立即绑定

Go中如何将方法作为参数传递?

Go中如何将方法作为参数传递?

Go
千万里不及你 2023-07-10 17:57:29
我只想将一些属于“任何”结构的方法传递给它们的接收者方法。这些是原型方法。func (r *Rules) Checker(fn ...func()) {}func (r *Rules) CheckEmpty() {}func (r *Rules) CheckMax()  {}我想要的就在这里:v.Rule.Checker(    v.Rule.CheckEmpty(),    v.Rule.CheckMax(),)但我认为函数类型不相等,程序给出错误“type void type as type func()”。有没有办法按照我的意愿调用这些方法?
查看完整描述

1 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

您想要将函数本身传递给Checker,而不是函数调用的结果。为此,请删除()函数名称后面的 ,这样该函数就不会被调用:

v.Rule.Checker(
    v.Rule.CheckEmpty,
    v.Rule.CheckMax,
)


查看完整回答
反对 回复 2023-07-10
  • 1 回答
  • 0 关注
  • 119 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信