
— Привет, Амиго!
И еще одна маленькая лекция о побитовых операторах.
Знаешь же, что кроме логических операторов AND(&&), OR(||) и NOT(!), есть еще побитовые AND(&), OR(|), NOT(~), XOR(^)?
— Ага. В свое время Билаабо давал очень хорошую лекцию на эту тему.
— Так вот, насчет этих операторов у меня есть две новости:
Во-первых, их можно применять к boolean-переменным, кроме оператора NOT(~), так же, как и логические операторы.
Во-вторых, при их применении ленивых вычислений не происходит.
Смотри пример:
Код | Аналог |
---|---|
|
|
Левая часть компактней правой?
— Ага.
— А по смыслу такая же?
— Ага.
— То-то и оно. А вот теперь такое же выражение с использованием побитовых операций:
Код | Аналог |
---|---|
|
|
Т.е. код тот же самый, но абсолютно все вычисления будут проделаны.
Обрати внимание, что если a равно null, то при вычислении c2 будет выкинуто исключение!
— Ага. Теперь картина более ясна.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ