Możesz zainicjować dwie zmienne na tę samą wartość naraz, tak jakby:
var foo, bar; foo = bar = 10;
Nie ma jednak podobnie łatwego mechanizmu dodania, powiedzmy, 5 do obu foo
i bar
jednocześnie. Oczywiście wystarczy zrobić:
foo += 5; // foo is now 15 bar += 5; // bar is now 15
Ale to dwie operacje.
Sztuczka jest taka:
foo += -bar + (bar += 5); // foo and bar are now 15
Prawdopodobnie nigdy nie będziesz tego potrzebować, po prostu interesujące jest wiedzieć, że jest to możliwe.
Dziękuję Matheusowi Avellarowi za przesłanie tej małej sztuczki oszałamiającej, który również wyjaśnia:
Zostanie
-bar
przeanalizowany i stanie się wartością ujemnąbar
, czyli -10. Następniea += 5
biegnie i ustawiabar
na 15 (10 + 5). Na koniec podsumowuje obie wartości (-10 + 15) i podaje różnicę między starąbar
a nowąbar
, która wynosi 15.