Du kan initialisera två variabler till samma värde på en gång, kinda:
var foo, bar; foo = bar = 10;
Men det finns ingen liknande enkel mekanism att lägga till, säg 5 till båda foo
och bar
samtidigt. Naturligtvis är det enkelt att bara göra:
foo += 5; // foo is now 15 bar += 5; // bar is now 15
Men det är två operationer.
Tricket är:
foo += -bar + (bar += 5); // foo and bar are now 15
Du kommer förmodligen aldrig behöva det här, det är bara intressant att veta att det är möjligt.
Tack till Matheus Avellar för att skicka in det här lilla mindbending tricket, som också förklarar:
Den
-bar
analyseras och blir det negativa värdet avbar
, så -10. Sedan,a += 5
driver och uppsättningarbar
till 15 (10 + 5). Slutligen summerar det båda värdena (-10 + 15) och ger dig skillnaden mellan gammaltbar
och nyttbar
, vilket är 15.