Mat*_*att 4 return go switch-statement
我有以下功能:
func fitrange(a, x, b int) int {
if a > b {
a, b = b, a
}
switch true {
case x < a:
return a
case x > b:
return b
default:
return x
}
}
Run Code Online (Sandbox Code Playgroud)
go编译器抱怨"函数在没有return语句的情况下结束",即使语句中的每个可能路径都switch
返回一个值.除了return
在函数末尾添加一个虚拟语句之外,还有什么方法可以解决这个问题吗?
Rya*_*yan 10
在开关之后default
一起拆下壳体return x
.
喜欢:
func fitrange(a, x, b int) int {
if a > b {
a, b = b, a
}
switch true {
case x < a:
return a
case x > b:
return b
}
return x
}
Run Code Online (Sandbox Code Playgroud)
您可以通过添加恐慌来安抚编译器,而不是在最后添加返回.这不是一个坏主意,因为如果你的代码包含一个bug并且达到了"无法访问"的行,那么你的程序将立即停止而不是向前推进可能错误的答案.
归档时间: |
|
查看次数: |
442 次 |
最近记录: |