登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-04-09 16:57:34 289浏览 收藏

大家好,我们又见面了啊~本文《Go中如何将方法作为参数传递?》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~

问题内容

我只是想将一些属于“any”结构的方法传递给它们的接收者方法。

这些是原型方法。

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,
)

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>