Puoi inizializzare due variabili sullo stesso valore contemporaneamente, un po ':
var foo, bar; foo = bar = 10;
Ma non esiste un meccanismo altrettanto facile per aggiungere, diciamo, 5 a entrambi foo
e bar
allo stesso tempo. Certo, è abbastanza semplice da fare:
foo += 5; // foo is now 15 bar += 5; // bar is now 15
Ma sono due operazioni.
Il trucco è:
foo += -bar + (bar += 5); // foo and bar are now 15
Probabilmente non ne avrai mai bisogno, è solo interessante sapere che è possibile.
Grazie a Matheus Avellar per averci inviato questo piccolo trucco strabiliante, che spiega anche:
Il
-bar
ottiene analizzato e diventa il valore negativo deibar
, così -10. Quindi,a += 5
corre e impostabar
a 15 (10 + 5). Infine, riassume entrambi i valori (-10 + 15) e ti dà la differenza tra vecchiobar
e nuovobar
, che è 15.