【发布时间】:2019-08-15 13:32:51
【问题描述】:
我只想将它们属于“任何”结构的一些方法传递给它们的接收器方法。
这些是原型方法。
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()”。 有没有办法按照我的意愿调用这些方法?
【问题讨论】:
-
type void type as type func()在 Go 中不是错误。你能发布你收到的实际错误吗?看起来您在这里可能想要的是v.Rule.Checker(v.Rule.CheckEmpty, v.Rule.CheckMax)- 传递函数而不是调用它们并传递它们的返回值(它们没有)。
标签: go struct parameter-passing