La mayoría (pero solo conozco un número pequeño, así que no nos volvemos quisquillosos en ese punto) los idiomas de alto nivel admiten múltiples operadores de asignación diferentes.Compatibilidad con idiomas modernos + = pero no && =
a += 5; // increment a and assign result beack to a.
Pero ninguno (que he mirado (de nuevo un número pequeño)) parecen apoyar la & & = operador.
La razón que pido poco vi esto:
// simplified.
bool x = false;
x = x && testA(); // perform test A/B/C/D stop on first failure.
x = x && testB();
x = x && testC();
x = x && testD();
y me preguntaba por qué no podríamos utilizar:
x &&= testA(); // perform test A/B/C/D stop on first failure.
x &&= testB();
x &&= testC();
x &&= testD();
La razón es que & & = No se admite en C/C++, que hecho pensamos por qué.
¿Existe una (sin intención juego de palabras) razón lógica para que el idioma es compatible con todos los otros operadores principales con una forma de asignación, pero no el & & = o = ||
Tengo un vago recuerdo de un argumento en contra estos, pero las búsquedas en google y SO son difíciles cuando su término de búsqueda es '& & =' y como resultado no encontré nada.
Tenía _exactly_ este pensamiento hoy, porque en lua, '&&' es la palabra 'y', así que me pregunté cómo lo hicieron' && = ', y se dio cuenta de que no hay' && = ', en lua o en la mayoría de los idiomas –