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并发代码片段]

golang代码片段(摘抄)

BASE64编码原理与Golang代码调用

如何使用不同的方法多次模拟调用 AWS 服务的 Golang 函数的单元测试?

代码片段 - Golang 实现简单的 Web 服务器