Golang调用不同参数的方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang调用不同参数的方法相关的知识,希望对你有一定的参考价值。
我有一个用例,我需要执行一系列参数不同的方法,如果遇到特定的返回值,那么我需要停止执行。这样的方法大概有50个左右。
给大家举个例子,这是我的用例。
func Method1(param1 type1, param2 type2, param3 type3) bool {
// here i use only param1 and other 2 params are not being used.
if some condition on param1 {
return true
}
return false
}
func Method2(param1 type1, param2 type2, param3 type3) bool {
// here i use param2 and param3. Param1 is not used
if some condition on param2 and param3 {
return true
}
return false
}
调用者方法的样子是这样的。
rejectionFuncs := []func(type1,type2,type3) bool {
Method1, Method2,
}
for _, s := range rejectionFuncs {
rejected := s(param1, param2, param3)
if rejected {
return false
}
}
我只能想到这种方式以优雅的方式执行一系列方法,但是这种方式的缺点我可以看到有很多方法的params没有被使用。如果运行在代码限定检查上,这些方法会抱怨我没有使用params。
我有没有什么办法可以简化这里的代码?
答案
不使用params并不是一个错误,事实上,当你想实现一个接口,该接口有带params的方法,但你的具体实现并不(需要)使用这些方法时,往往会出现这种情况。
在你的情况下,你可以简化一件事,就是把params包在一个struct中,你只需要把struct(或者struct的指针)传递给函数。这也会让你的代码质量检查员冷静下来。
以上是关于Golang调用不同参数的方法的主要内容,如果未能解决你的问题,请参考以下文章
golang goroutine例子[golang并发代码片段]