Операторы назначения
Операторы назначения предназначены чтобы изменять значения переменных.
tip
Мой совет - в дальнейшем воспринимать переменные как указатели на те или иные объекты(что в действительности и происходит). А оператор присваивания в свою очередь меняет указать на какой-то другой объект.
=
Простое присваивание Что произойдет в примере выше?
var x = 1
- Интерпретатор увидет числовой литерал, выделит память под число. (если это требуется).
- После чего в текущей области видимости появится новое имя(переменная) указывающая на новое значение в памяти.
x = 3
- Интерпретатор создаст число в памяти.
- Переставит указатель в переменной на новое значение.
Это не полный список операторов присваивания, за справкой можно сходить сюда:
=<*>
Присваивание с арифметической операцией note
Почти всегда когда вы видите <>
в документации или справке - это обозначает плейсхолдер, в который что-то подставляется.
Например
👆 Такая запись говорит нам, что нам надо подставить cmd
(аргумент) в команду.
Перед нами стоит задача умножить значение переменной a
на 2
, мы можем сделать это так:
Вроде бы неплохо, но есть более интересный вариант - воспользовать оператором назначения с арифметической операцией:
Операцию a *= 2
мы можем считать синтаксическим сахаром, такая запись развернется в a = a * 2
. Такие операторы существуют для всех видов арифметических и бинарных операций. Чтобы долго не рассписывать это, давайте я просто напишу несколько примеров:
Сторонние материалы;
Присваивание с деструктуризацией
caution
Эти операторы в полной мере вы сможете понять после того как ознакомитесь с массивами и объектами.
Деструктуризация/Распаковка
Этими двумя словами я буду называть одно и то же. Например в Python, такую операцию называют распаковкой, что на мой взгляд звучит понятнее.
Присваивание с деструктуризацией позволяет нам распаковать объект или массив сразу в переменные.
Распаковка из массива
Вот простенький пример распаковки массива с двумя значениями в переменный a
и b
:
Если значений в массиве больше чем переменных, то оставшиеся значения в массиве будут просто проигнорированны.
А что делать если мы хотим вытащить координаты x
и z
? Тогда мы можем не указывать название для переменной в которой была бы координата y
:
Использование rest-оператора
Этот оператор предназначен чтобы упаковать оставшиеся значения при распаковке из массива или объекта в отдельные переменные. Чем читать определение легче просто посмотреть на пример:
Как видите, оставшиеся значения из массива мы переупаковали в переменную rest
, для этого воспользовавшись rest-оператором(...<>
).
info
Сразу должен сделать оговорку(хоть мы еще и не говорили про распаковку объектов) о том, что rest-оператор упаковывает оставшиеся значения из объектов и массивов в соответствуйющие типы.
Деструктуризация сложного массива
Вы можете распаковывать не только плоские массивы, но и вложенные.
Распаковка объекта
danger
TODO: Дописать
Смешанная распаковка
Распаковывать вы можете не только массивы или объекты, но и смешанные данные. Например у нас есть следующий объект:
Мы хотим вытащить из этого объекта толко статус терраформирования и координаты, сделаем мы это так:
caution
Будьте внимательны со скобками!