是否有充分的理由说明为什么在函数中只有一个return语句是更好的做法?
或者,一旦逻辑正确就可以从函数返回,这意味着函数中可能有很多返回语句?
最近我惊讶地发现在Java中的finally块中可以有一个return语句.
似乎很多人认为这样做是不好的,如' 不要在最终条款中返回 '中所描述的那样.更深入地抓了一下,我还发现' Java的回归并不总是 ',这显示了最终块中其他类型的流控制的一些非常可怕的例子.
所以,我的问题是,有人能给我一个例子,其中finally块中的return语句(或其他流控制)产生更好/更可读的代码吗?
如您所知,在Eclipse中,您可以启用" 不必要的'else'语句 "检查,这将在if-then-else上触发,提前返回.而且,根据我的经验,使用此类声明时有两种最可能的情况:
1)预检:
if (!validate(arg1)) {
return false;
}
doLotOfStuff();
Run Code Online (Sandbox Code Playgroud)
2)检查后:
doLotOfStuff();
if (condition) {
return foo;
} else {
return bar;
}
Run Code Online (Sandbox Code Playgroud)
在第二种情况下,如果触发器打开,Eclipse将建议您将代码更改为:
doLotOfStuff();
if (condition) {
return foo;
}
return bar;
Run Code Online (Sandbox Code Playgroud)
但是,我认为使用else语句返回更具可读性,因为它类似于业务逻辑的直接映射.如果这个"不必要的'其他'声明"代码约定很普遍,或者使用else语句的代码更优选,那么我很好奇吗?