Du kan initialisere to variabler til samme verdi samtidig, ganske:
var foo, bar; foo = bar = 10;
Men det er ingen like enkel mekanisme å legge til, si 5 til begge, foo
og bar
samtidig. Selvfølgelig er det enkelt å bare gjøre:
foo += 5; // foo is now 15 bar += 5; // bar is now 15
Men det er to operasjoner.
Trikset er:
foo += -bar + (bar += 5); // foo and bar are now 15
Du vil sannsynligvis aldri trenge dette, det er bare interessant å vite at det er mulig.
Takk til Matheus Avellar for at du sendte inn dette lille mindbending-trikset, som også forklarer:
Den
-bar
blir analysert og blir den negative verdien avbar
, så -10. Derettera += 5
løper og setterbar
til 15 (10 + 5). Til slutt oppsummerer det begge verdiene (-10 + 15) og gir deg forskjellen mellom gammeltbar
og nyttbar
, som er 15.