Операции — это основа для выполнения вычислений, логики и обработки данных в языке выражений бота. Они позволяют складывать числа, проверять условия, манипулировать строками, работать с коллекциями и многое другое.
Приоритет определяет порядок выполнения операций. Операции с более высоким приоритетом выполняются раньше. Чтобы явно указать порядок выполнения, используйте круглые скобки.
Таблица приоритетов операций:
Операция | Приоритет | Ассоциативность | Описание |
---|---|---|---|
** |
12 | Правая | Возведение в степень |
+ , - (унарные) |
11 | – | Унарные плюс и минус |
~ |
11 | – | Побитовая инверсия |
! |
10 | – | Логическое отрицание |
* , / , \ , % |
9 | Левая | Умножение, деление, остаток |
+ , - |
8 | Левая | Сложение, вычитание |
:: |
8 | Левая | Конкатенация строк |
< , <= , > , >= |
7 | – | Сравнения |
== , != |
6 | – | Равенство, неравенство |
& |
5 | Левая | Побитовое И |
^ |
4 | Левая | Побитовое исключающее ИЛИ |
| |
3 | Левая | Побитовое ИЛИ |
&& |
2 | Левая | Логическое И |
|| |
1 | Левая | Логическое ИЛИ |
Присваивание (= и др.) |
0 | Правая | Операции присваивания |
Арифметические операции выполняются над числами. Если один из операндов не является числом, интерпретатор попытается преобразовать его в число.
Операция | Описание | Пример |
---|---|---|
+$a |
Преобразование в число | $a = +"5" |
-$a |
Смена знака | $a = -5 |
$a + $b |
Сложение | $c = $a + $b |
$a - $b |
Вычитание | $c = $a - $b |
$a * $b |
Умножение | $c = $a * $b |
$a / $b |
Деление | $c = $a / $b |
$a \ $b |
Целочисленное деление | $c = $a \ $b |
$a % $b |
Остаток от деления | $c = $a % $b |
$a ** $b |
Возведение в степень | $c = $a ** $b |
Логические операции работают с булевыми значениями. Если операнд не является булевым, он будет преобразован.
Операция | Описание | Пример |
---|---|---|
!$a |
Логическое НЕ | $b = !$a |
$a && $b |
Логическое И | $c = $a && $b |
$a || $b |
Логическое ИЛИ | $c = $a \| $b |
Таблица преобразования в булевы значения:
Тип | Значение | Булево значение |
---|---|---|
nil |
nil |
false |
Число | 0 |
false |
Число | Ненулевое | true |
Строка | Пустая | false |
Строка | Непустая | true |
Объект | Любой | true |
Побитовые операции работают с битовыми представлениями чисел.
Операция | Описание | Пример |
---|---|---|
~$a |
Побитовая инверсия | $b = ~$a |
$a & $b |
Побитовое И | $c = $a & $b |
$a | $b |
Побитовое ИЛИ | $c = $a \| $b |
$a ^ $b |
Исключающее ИЛИ | $c = $a ^ $b |
Строки можно объединять с помощью операции конкатенации ::
.
Операция | Описание | Пример |
---|---|---|
"a" :: "b" |
Объединение строк | "a" :: "b" == "ab" |
Преобразование других типов данных в строки:
Тип | Значение | Строковое представление |
---|---|---|
nil |
nil |
"" |
Число | 123.45 |
"123.45" |
Логический | true |
"true" |
Логический | false |
"false" |
Объект | Любой | Сериализация |
Сравнения выполняются над любыми типами данных, возвращая булевы значения.
Операция | Описание | Пример |
---|---|---|
$a == $b |
Равенство | $a == $b |
$a != $b |
Неравенство | $a != $b |
$a > $b |
Больше | $a > $b |
$a >= $b |
Больше или равно | $a >= $b |
$a < $b |
Меньше | $a < $b |
$a <= $b |
Меньше или равно | $a <= $b |
Коллекции поддерживают операцию объединения.
Операция | Описание | Пример |
---|---|---|
(1, 2) + (3, 4) |
Объединение кортежей | (1, 2, 3, 4) |
['a'] + ['b'] |
Объединение списков | ['a', 'b'] |
{'a': 0} + {'b': 1} |
Объединение словарей | {'a': 0, 'b': 1} |
Присваивание позволяет установить значение переменной. Также доступны комбинированные операции, например, сложение с присваиванием.
Операция | Описание | Пример |
---|---|---|
$a = 123 |
Присваивание | $a = 123 |
$a += 1 |
Сложение с присваиванием | $a = $a + 1 |
$a -= 1 |
Вычитание с присваиванием | $a = $a - 1 |
$a *= 2 |
Умножение с присваиванием | $a = $a * 2 |
Пример множественного присваивания:
// Присваиваем значения нескольким переменным
($x, $y, $z) = (1, 2, 3)