Puteți inițializa două variabile la aceeași valoare simultan, cam:
var foo, bar; foo = bar = 10;
Dar nu există un mecanism ușor similar pentru a adăuga, să zicem, 5 la ambele foo
și bar
în același timp. Desigur, este suficient de simplu să faceți doar:
foo += 5; // foo is now 15 bar += 5; // bar is now 15
Dar asta sunt două operații.
Trucul este:
foo += -bar + (bar += 5); // foo and bar are now 15
Probabil că nu veți avea nevoie niciodată de acest lucru, este doar interesant să știți că este posibil.
Mulțumim lui Matheus Avellar pentru că a trimis acest mic truc mințios, care explică și:
Obiectivul
-bar
este analizat și devine valoarea negativă abar
, deci -10. Apoi,a += 5
rulează și seteazăbar
la 15 (10 + 5). În cele din urmă, rezumă ambele valori (-10 + 15) și vă oferă diferența dintre vechibar
și noubar
, care este 15.