Vous pouvez initialiser deux variables à la même valeur à la fois, un peu:
var foo, bar; foo = bar = 10;
Mais il n'existe pas de mécanisme aussi simple pour ajouter, disons, 5 aux deux foo
et bar
en même temps. Bien sûr, c'est assez simple à faire:
foo += 5; // foo is now 15 bar += 5; // bar is now 15
Mais ce sont deux opérations.
L'astuce est:
foo += -bar + (bar += 5); // foo and bar are now 15
Vous n'en aurez probablement jamais besoin, c'est juste intéressant de savoir que c'est possible.
Merci à Matheus Avellar pour l'envoi de cette petite astuce de maîtrise de l'esprit, qui explique également:
Le
-bar
est analysé et devient la valeur négative debar
, donc -10. Ensuite,a += 5
s'exécute et définitbar
à 15 (10 + 5). Enfin, il résume les deux valeurs (-10 + 15) et vous donne la différence entre l'ancienbar
et le nouveaubar
, soit 15.