gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 03:41:39 26 4
gpt4 key购买 nike

我只想将它们属于“任何”结构的一些方法传递给它们的接收器方法。

这些是原型(prototype)方法。

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()”。有没有办法按照我的意愿调用这些方法?

最佳答案

您想将函数本身传递给 Checker,而不是函数调用的结果。为此,将 () 放在函数名称之后,这样函数就不会被调用:

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

关于go - 如何在 Go 中将方法作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57510459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com