Varat inicializēt divus mainīgos vienlaikus ar vienu un to pašu vērtību:
var foo, bar; foo = bar = 10;
Bet nav tikpat vienkārša mehānisma, lai abiem foo
un bar
tajā pašā laikā pievienotu, teiksim, 5 . Protams, tas ir pietiekami vienkārši, lai vienkārši izdarītu:
foo += 5; // foo is now 15 bar += 5; // bar is now 15
Bet tās ir divas operācijas.
Triks ir:
foo += -bar + (bar += 5); // foo and bar are now 15
Tas, iespējams, jums nekad nebūs vajadzīgs, ir vienkārši interesanti uzzināt, ka tas ir iespējams.
Paldies Matheus Avellar, kurš nosūtīja šo mazo domāšanas triku, kurš arī paskaidro:
-bar
Tiek parsēt un kļūst par negatīvu vērtībubar
, tāpēc -10. Pēc tama += 5
skrien un iestatabar
15 (10 + 5). Visbeidzot, tas apkopo abas vērtības (-10 + 15) un sniedz atšķirību starp vecobar
un jaunobar
, kas ir 15.