简化 golang 中重复出现的 switch case

我试图了解是否有更好的方法来简化 golang 中重复出现的 switch 案例。我有一个可以返回多个错误的方法,但我对 3 个特定错误感兴趣,我需要返回一个特定的带注释的错误而不是一般错误。但是case1,case2返回err1,err2但是在case3的情况下,我需要使用不同的参数调用相同的方法,并且如果方法返回err1,err2也需要处理。如果您有任何建议,请提供。目前我正在以下面的方式处理,但试图看看我是否可以简化调用 case1、case2 的重复性。


    _, err := doSomething(var1)

    if err != nil {

        switch err.Error() {

        case case1:

            return err1

        case case2:

            return err2

        case case3:

            _, err := doSomething(var2)

            switch err.Error() {

            case case1:

                return err1

            case case2:

                return err2

            default:

                return err

            }

        default:

            return err

如果您需要更多详细信息或需要对我的问题本身进行更多说明,请告诉我。


波斯汪
浏览 181回答 1
1回答

呼啦一阵风

翻译特殊情况的错误。继续普通处理。_, err := doSomething(var1)if err != nil {    if err.Error() == case3 {        _, err = doSomething(var2)    }    switch err.Error() {    case case1:        return err1    case case2:        return err2    default:        return err    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go