我正在尝试重构一些代码并使其更易于阅读。我注意到在某些函数的末尾有一些不必要的返回语句。这是一个概念性示例:
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
的原因。
最佳答案
panic 而不是在函数结束时返回假值:
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 中的常见模式.
关于loops - 摆脱无用的返回语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49554740/