func()
調用3個不同的函數f1()
,f2()
,f3()
。函數返回樣式邏輯並沒關係?
我的函數返回BOOL,邏輯與3層的功能,
是這樣行(正常的)?
BOOL func(...)
{
//...
return (f1() && f2() && f3());
}
func()
調用3個不同的函數f1()
,f2()
,f3()
。函數返回樣式邏輯並沒關係?
我的函數返回BOOL,邏輯與3層的功能,
是這樣行(正常的)?
BOOL func(...)
{
//...
return (f1() && f2() && f3());
}
請注意,內置operator &&
執行短路評估;即如果f1()
返回false
則f2()
和f3()
將不會被調用。
如果這對您的意圖很好,那麼代碼看起來很好。
對我來說很好。 – sailfish009
無論f1,f2和f3返回什麼,這都是非常好的有效語法。但是,如果這些函數中的任何一個輸出可能會轉化爲錯誤的東西,則整個表達式將評估爲false。
return (f1() && f2() && f3());
如果呼叫到f1()
返回值是假f2()
和f3()
不會被調用。
沒關係。 f1()必須返回true。那麼必須運行f2(),等等。 – sailfish009
風格是非常主觀的,詢問它會導致這個問題被關閉。至於邏輯,請記住布爾運算符'&&'和'||'使用[* short-circuit evaluation *](https://en.wikipedia.org/wiki/Short-circuit_evaluation)。所以在你的情況下,如果第一個函數返回'false',那麼函數的其餘部分將不會被調用。你能否詳細說明你顯示的代碼有哪些問題?你爲什麼要發佈這個問題?你只要求我們*審查*你的代碼?還有其他問題嗎?你不明白的東西? –
我想驗證我的代碼,以防止錯誤。 – sailfish009