Du kan initialisere to variabler til samme værdi på én gang, kinda:
var foo, bar; foo = bar = 10;
Men der er ingen lignende nem mekanisme at tilføje, siger, 5 til begge foo
og bar
på samme tid. Selvfølgelig er det enkelt nok til bare at gøre:
foo += 5; // foo is now 15 bar += 5; // bar is now 15
Men det er to operationer.
Tricket er:
foo += -bar + (bar += 5); // foo and bar are now 15
Du har sandsynligvis aldrig brug for dette, det er bare interessant at vide, at det er muligt.
Tak til Matheus Avellar for at sende dette lille mindbending trick ind, som også forklarer:
Den
-bar
bliver analyseret og bliver den negative værdi påbar
, så -10. Dereftera += 5
kører og sætterbar
til 15 (10 + 5). Endelig opsummerer det begge værdier (-10 + 15) og giver dig forskellen mellem gammeltbar
og nytbar
, hvilket er 15.