如何在Go中将方法作为参数传递?
我只想将一些属于“any”结构的方法传递给接收方方法 这些是原型方法 func r*规则Checkerfn…func{} func r*规则CheckEmpty{} func r*规则CheckMax{} 我想要的是: v、 规则检查 v、 Rule.CheckEmpty, v、 Rule.CheckMax, 但我认为函数类型不相等,程序给我的错误是“type void type as type func”。如何在Go中将方法作为参数传递?,go,struct,parameter-passing,Go,Struct,Parameter Passing,我只想将一些属于“any”结构的方法传递给接收方方法 这些是原型方法 func r*规则Checkerfn…func{} func r*规则CheckEmpty{} func r*规则CheckMax{} 我想要的是: v、 规则检查 v、 Rule.CheckEmpty, v、 Rule.CheckMax, 但我认为函数类型不相等,程序给我的错误是“type void type as type func”。 有没有一种方法可以像我所希望的那样调用这些方法?您希望将函数本身传递给Checker,
有没有一种方法可以像我所希望的那样调用这些方法?您希望将函数本身传递给Checker,而不是函数调用的结果。要执行此操作,请在函数名称后删除,以便不调用该函数:
v.Rule.Checker(
v.Rule.CheckEmpty,
v.Rule.CheckMax,
)
类型void type as type func在Go中不是错误。你能公布你收到的实际错误吗?看起来您可能需要的是v.Rule.Checkerv.Rule.CheckEmpty,v.Rule.CheckMax-传递函数,而不是调用它们并传递它们没有的返回值。谢谢,我现在已经完全理解了。