Voit alustaa kaksi muuttujaa samaan arvoon kerralla, tavallaan:
var foo, bar; foo = bar = 10;
Mutta ei ole yhtä helppoa mekanismia lisätä esimerkiksi 5 molempiin foo
ja bar
samaan aikaan. Tietenkin se on tarpeeksi yksinkertaista vain:
foo += 5; // foo is now 15 bar += 5; // bar is now 15
Mutta se on kaksi operaatiota.
Temppu on:
foo += -bar + (bar += 5); // foo and bar are now 15
Et todennäköisesti koskaan tarvitse tätä, on vain mielenkiintoista tietää, että se on mahdollista.
Kiitos Matheus Avellarille tämän pienen mielenterveystempun lähettämisestä, joka myös selittää:
-bar
Saa jäsennetään ja tulee negatiivinen arvobar
, niin -10. Sittena += 5
juoksee ja asettaabar
15 (10 + 5). Lopuksi se tiivistää molemmat arvot (-10 + 15) ja antaa sinulle eron vanhanbar
ja uuden välilläbar
, joka on 15.