|
- побитовое ИЛИ.
|=
говорит, что возьмите то, что возвращается в одной из ваших функций, и bitwise OR
это с помощью result
, затем сохраните это в result
. Это эквивалентно выполнению чего-то вроде:
result = result | callFunctionOne(sig);
Пример кода:
bool result;
result |= callFunctionOne(sig);
result |= callFunctionTwo(sig);
result |= callFunctionThree(sig);
result |= callFunctionFour(sig);
и ваша логика
будет возвращать «истина», если в функции обработан sig-параметр,
в противном случае верните «ложь»;
То есть, если вы не определите результат, по умолчанию это будет FALSE .
result = false;
callFunctionOne
возвращает TRUE
result = result | callFunctionOne;
result
равно ИСТИНА .
result = false;
callFunctionOne
возвращает FALSE
result = result | callFunctionOne
результат равен ЛОЖЬ.
Хотя может показаться, что это boolean OR
, он все еще использует bitwise OR
, который, по сути, OR'ing
число 1
или 0
.
Итак, учитывая, что 1
равно TRUE и 0
равно FALSE, запомните таблицы истинности:
p q p ∨ q
T T T
T F T
F T T
F F F
Теперь, поскольку вы вызываете каждую функцию за другой, это означает, что результат предыдущей функции в конечном итоге определит конечный результат из callFunctionFour
. При этом, три четверти времени, это будет ИСТИНА и одна четверть времени, это будет ЛОЖЬ .