Присваивание выполняется в помощью литерала присваивания (=
).
# Присваивание локальной переменной
local = 1
# Присваивание переменной объекта
@instance = 2
# Присваивание переменной класса
@@class = 3
# Присваивание глобальной переменной
$global = 4
Все эти типы переменных будут объяснены позже.
Также доступны другие операторы, содержащие в себе операцию присваивания =
и являющиеся синтаксическим сахаром:
local += 1 # то же, что и: local = local + 1
# выполняется также и для этих операторов:
# +, -, *, /, %, |, &, ^, **, <<, >>
local ||= 1 # то же, что и: local || (local = 1)
local &&= 1 # то же, что и: local && (local = 1)
Способ вызова, заканчивающийся литералом присваивания =
также имеет синтаксический сахар:
# Сеттер
person.name=("John")
# что может быть записано так:
person.name = "John"
# присваивание элементу массива
objects.[]=(2, 3)
# аналогично этому:
objects[2] = 3
# не связано с присваиванием, но тоже синтаксический сахар:
objects.[](2, 3)
# то же, что и:
objects[2, 3]
Обратите внимание, что операторы ||
и &&
используют метод []?
для проверки присутствия ключа.
person.age += 1 # то же, что и: person.age = person.age + 1
person.name ||= "John" # то же, что и: person.name || (person.name = "John")
person.name &&= "John" # то же, что и: person.name && (person.name = "John")
objects[1] += 2 # то же, что и: objects[1] = objects[1] + 2
objects[1] ||= 2 # то же, что и: objects[1]? || (objects[1] = 2)
objects[1] &&= 2 # то же, что и: objects[1]? && (objects[1] = 2)