我在C++中偶然發現了以下建築:運算符| =在C++的布爾
bool result = false;
for(int i = 0; i<n; i++){
result |= TryAndDoSomething(i);
}
我認爲這|=
是爲OR操作的快捷方式,並result
將在年底如果相等true
至少其中一個致電TryAndDoSomething
的電話已返回true
。
但現在我想知道如果多個電話實際上可以返回true
。事實上,如果我們延長操作:
result = result || TryAndDoSomething(i);
那麼只有當收益評估,以false
的方法將被調用,也就是說,如果沒有其他調用之前返回true
。因此,在一次呼叫返回true
後,不會有其他呼叫完成。
這是正確的解釋嗎?
您可以輕鬆測試。我剛剛做到了,看起來所有的電話都是通話,而不僅僅是第一個。 –