U kunt twee variabelen tegelijk op dezelfde waarde initialiseren, een beetje:
var foo, bar; foo = bar = 10;
Maar er is geen even gemakkelijk mechanisme om bijvoorbeeld 5 aan beide foo
en bar
tegelijkertijd toe te voegen . Het is natuurlijk eenvoudig genoeg om gewoon te doen:
foo += 5; // foo is now 15 bar += 5; // bar is now 15
Maar dat zijn twee operaties.
De truc is:
foo += -bar + (bar += 5); // foo and bar are now 15
Je hebt dit waarschijnlijk nooit nodig, het is gewoon interessant om te weten dat het mogelijk is.
Met dank aan Matheus Avellar voor het insturen van deze kleine hersenkraker, die ook uitlegt:
Het
-bar
wordt ontleed en wordt de negatieve waarde vanbar
, dus -10. Loopt vervolgens uita += 5
en stelt inbar
op 15 (10 + 5). Ten slotte somt het beide waarden op (-10 + 15) en geeft u het verschil tussen oudbar
en nieuwbar
, namelijk 15.