Saate initsialiseerida kaks muutujat ühele ja samale väärtusele korraga:
var foo, bar; foo = bar = 10;
Kuid pole nii lihtsat mehhanismi, et lisada mõlemale foo
ja bar
korraga näiteks 5 . Muidugi on see piisavalt lihtne, et lihtsalt teha:
foo += 5; // foo is now 15 bar += 5; // bar is now 15
Kuid see on kaks operatsiooni.
Trikk on:
foo += -bar + (bar += 5); // foo and bar are now 15
Tõenäoliselt pole seda kunagi vaja, on lihtsalt huvitav teada, et see on võimalik.
Aitäh Matheus Avellarile selle väikese mõttemeelse triki saatmise eest, kes selgitab ka:
Tulemused
-bar
parsitakse ja muutuvad negatiivseks väärtuseksbar
, seega -10. Seejärela += 5
jookseb ja määrabbar
15 (10 + 5). Lõpuks võtab see kokku mõlemad väärtused (-10 + 15) ja annab teile erinevuse vanabar
ja uue vahelbar
, mis on 15.