Я наткнулся на следующую конструкцию в C ++:
bool result = false;
for(int i = 0; i<n; i++){
result |= TryAndDoSomething(i);
}
Я предположил, что это |=
было сокращением для оператора ИЛИ, и что result
будет равно true
в конце, еслипо крайней мере один из этих вызовов TryAndDoSomething
возвратил true
.
Но теперь мне интересно, может ли более одного вызова на самом деле вернуть true
.Действительно, если мы расширим операцию как:
result = result || TryAndDoSomething(i);
Тогда метод будет вызван, только если return оценивается как false
, то есть, если никакой другой вызов до этого не был возвращен true
.Таким образом, после одного вызова, возвращающего true
, никакого другого вызова не будет.
Это правильная интерпретация?