2015-07-08 1 views
2

В Java && и || являются коротким замыканием. Таким образом, они не оценивают свой второй операнд, если это не необходимо (например, false && a, true || b).Является ли оператор & = оператором коротких замыканий в Java?

Как насчет оператора &=? Это короткое замыкание?

+0

'' & не является коротким оператором замыкания, поэтому 'а = а & b' не короткое замыкание, а также не 'a &= b;' –

ответ

1

Нет, это не так.

Был какой-то нить назад о том, почему оператор &&= не существует. Это могло быть оператором короткого замыкания, если имело смысл его иметь.

2

Нет, &= не является булевым оператором и, как таковой, он не замыкает ничего, это побитовый оператор присваивания.

По существу подразумевается назначение первого операнда с побитовым & первого и второго операндов.

Быстрый демонстрационный

int i = 01; 
int ii = 10; 
System.out.println(i &= ii); // assigns i with i & ii and sends i to print stream 
i = 01; 
ii = 11; 
System.out.println(i &= ii); 

Выходной

0 
1 
Смежные вопросы