duplicados posibles:
Why doesn't Java have compound assignment versions of the conditional-and and conditional-or operators? (&&=, ||=)
Why does a “&&=” Operator not exist?&& = y = || operadores
Hoy en el trabajo me escribió lo siguiente LOC (las identidades reales de B y B1 son confidenciales:)
b &&= b1; // meaning b = b && b1;
Lo miré por un par de segundos y se dio cuenta de que no existe tal operador. Solo para estar seguro, hice clic en compilar y falló. Estar muerto seguro de que consulté el estándar.
¿Existen razones específicas por las que no existen tales operadores? Se me ocurren algunos:
b &&= b1
yb = b && b1
puede no ser equivalente a causa de la evaluación de cortocircuito de & &.- & & = es feo
- & & = rara vez es necesaria
No pretendo que sería muy útil disponer de este tipo de operadores, no. Tampoco afirmo que alguna o todas las tres razones anteriores no sean suficientes para evitar crear ese operador. Mi pregunta es la siguiente: ¿hay alguna razón mucho más seria que estoy supervisando?
Sí, puede tener dos valores booleanos "verdaderos" (ambos mayores que uno), donde su valor bit a bit es "falso" ... Pruebe en modo bit y 2 y 1 y obtendrá 0 (falso), donde una lógica y produciría true – LorenVS
'b & = isSomethingWithSideEffects();' ejecutaría la función independientemente. pero si se cambiara a '&& =' presumiblemente no lo sería en el caso de que b fuera falso, ¿no? – Dusty
Lo siento, no entiendo por qué el comentario de Dingo ha sido votado. ¿Podría alguien explicar por favor? – John