Két változó egyszerre inicializálható ugyanarra az értékre:
var foo, bar; foo = bar = 10;
De nincs hasonlóan egyszerű mechanizmus hozzá, mondjuk, 5 mind foo
, és bar
ugyanabban az időben. Természetesen elég egyszerű a következőket tenni:
foo += 5; // foo is now 15 bar += 5; // bar is now 15
De ez két művelet.
A trükk:
foo += -bar + (bar += 5); // foo and bar are now 15
Erre valószínűleg soha nem lesz szüksége, csak érdekes tudni, hogy lehetséges.
Köszönet Matheus Avellarnak, hogy elküldte ezt a kis gondolkodási trükköt, aki azt is elmagyarázza:
Az
-bar
elemzett elemzés negatív értékévé válikbar
, tehát -10. Ezutána += 5
fut, ésbar
15-re áll (10 + 5). Végül összefoglalja mindkét értéket (-10 + 15), és megadja a különbséget a régibar
és az új közöttbar
, ami 15.