Вы можете инициализировать две переменные одновременно одним и тем же значением, вроде:
var foo, bar; foo = bar = 10;
Но не существует столь же простого механизма, чтобы добавить, скажем, 5 к обоим foo
и bar
одновременно. Конечно, достаточно просто сделать:
foo += 5; // foo is now 15 bar += 5; // bar is now 15
Но это две операции.
Уловка заключается в следующем:
foo += -bar + (bar += 5); // foo and bar are now 15
Возможно, вам это никогда не понадобится, просто интересно знать, что это возможно.
Спасибо Матеусу Авеллару за этот небольшой трюк, который также объясняет:
-bar
Получает анализируются и становится отрицательным значениемbar
, так что -10. Затемa += 5
бежит и устанавливаетbar
15 (10 + 5). Наконец, он суммирует оба значения (-10 + 15) и дает вам разницу между старымbar
и новымbar
, которая составляет 15.