摆脱无用的退货声明

时间:2018-03-29 11:18:42

标签: loops go return return-value

我正在尝试重构一些代码并使其更易于阅读。我注意到在一些函数的末尾我有一些不必要的return语句。这是一个概念示例:

func someFunction(a []arr) int {
    for _,v := range a {
        if v == something {
            // will defenitly get here at some point! 
            return somethingElse
        }
    }
    return -1 // never ever happens! 
} 

在我看来,函数末尾的return语句具有误导性,因为它表明,它可能会在某个时刻达到。我该如何预防呢?

请注意,我在其他方面进行错误处理,这就是为什么我可以确定someFunction将始终返回somethingElse

1 个答案:

答案 0 :(得分:10)

恐慌而不是在函数结束时返回假值:

func someFunction(a []arr) int {
    for _,v := range a {
        if v == something {
            // will defenitly get here at some point! 
            return somethingElse
        }
    }

    panic("unreachable")
} 

这是standard library中的常见模式。