在一個函數的整個邏輯符合「如果這個條件是真/假,返回這個,否則返回這個」的線,什麼是最好的或可能是最接受的形式呢?似乎有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語句原則的人。 – chris 2012-07-30 01:47:45
太主觀。我個人會寫:'返回foo? doSomething():somethingElse;'。 – GManNickG 2012-07-30 01:49:09
好閱讀[「唯一回報」的概念來自哪裏?](http://programmers.stackexchange.com/questions/118703/where-did-the-notion-of-one-return-only-come -從)。 – 2012-07-30 02:06:16