在整个逻辑都遵循“如果此条件为真/假,则返回此,否则返回此”的函数中,最好或可能最接受的形式是什么?我似乎有3种方法。
int function(bool foo){
if(foo){
return doSomething();
}else{
return somethingElse;
}
}
这是最有意义的,但我曾经读过具有返回类型的函数永远不应该将其返回类型放在分支中。(为什么,消息来源从未说过)那么就是这样:
int function(bool foo){
if(foo){
return doSomething();
}
return somethingElse;
}
它在分支之外有一个返回类型,但它带走了我认为的代码的一些含义,而且我还阅读了 if-else 块的好处。(这些是什么,消息来源也没有说)最后,有这个:
int function(bool foo){
int result;
if(foo){
result = doSomething();
}else{
result = somethingElse;
}
return result;
}
意义就在那里,return 在分支之外,但添加了一个功能并不真正需要的变量和代码。
我的问题是,这三种形式中的哪一种,或者任何其他形式(如果有的话)是按照这种方式编写函数的最佳方式?