Možete istovremeno inicijalizirati dvije varijable u istu vrijednost, nekako:
var foo, bar; foo = bar = 10;
Ali ne postoji slično jednostavan mehanizam za dodavanje, recimo, 5 u oba foo
i bar
istovremeno. Naravno, dovoljno je jednostavno:
foo += 5; // foo is now 15 bar += 5; // bar is now 15
Ali to su dvije operacije.
Trik je:
foo += -bar + (bar += 5); // foo and bar are now 15
Vjerojatno vam ovo nikada neće trebati, samo je zanimljivo znati da je to moguće.
Zahvaljujemo Matheusu Avellaru što je poslao ovaj mali zapanjujući trik, koji također objašnjava:
-bar
Dobiva raščlaniti i postaje negativna vrijednostbar
, pa -10. Zatim sea += 5
pokreće i postavljabar
na 15 (10 + 5). Konačno, zbraja obje vrijednosti (-10 + 15) i daje vam razliku između starebar
i novebar
, koja je 15.