Операторы



Таблица всех операторов 11l в порядке от наивысшего приоритета к низшему:
x.y
module:f
a[i]
a[%i]
f(x)
x--
x++
x!
x.*
Доступ к элементу
Функция или переменная модуля
Обращение к элементу контейнера
Обращение к элементу массива ({})
Вызов функции
Постфиксный декремент
Постфиксный инкремент
Оператор non-null
Разыменование указателя
^Оператор возведения в степень (ассоциативность: справа налево)
-x
+x
!x
~x
--x
++x
&x
Унарный минус
Унарный плюс
Логическое НЕ
Поразрядное НЕ (обоснование выбора: {})
Префиксный декремент
Префиксный инкремент
Оператор взятия адреса
x * y
x *& y
x / y
x I/ y или x Ц/ y
x -I/ y или x -Ц/ y
x % y
x -% y
Умножение
Умножение с переполнением (обоснование выбора: {})
Деление
Целочисленное деление {}
Floor-деление
Остаток от деления
Floor-остаток от деления ({}, обоснование выбора: {})
x""y и x‘’yКонкатенация строк (обоснование выбора)
x + y
x - y
x +& y
x -& y
Сложение
Вычитание
Сложение с переполнением
Вычитание с переполнением
x << y
x >> y
Поразрядный сдвиг влево
Поразрядный сдвиг вправо
x [&] yПоразрядное И (обоснование выбора: {})
x (+) yПоразрядное исключающее ИЛИ (обоснование выбора: {})
x [|] yПоразрядное ИЛИ (обоснование выбора: {})
x < y, x <= y
x > y, x >= y
Операции сравнения
x ? yВернуть левый операнд если он не нуль, иначе вернуть правый операнд (обоснование выбора: {})
x..y, x.<y, x.+len
x<.y, x<.<y
Диапазоны
x == y, x != y
e in c, e !in c
e C c, e !C c
Сравнения
Элемент e содержится/‘не содержится’ в контейнере c
x & yЛогическое И (обоснование выбора: {})
x | yЛогическое ИЛИ
arr1 [+] arr2Конкатенация массивов (обоснование выбора: {})
() -> выражение
x -> выражение
(x, y) -> выражение
Лямбда-выражение
x = ...
x += ...
-= *= /= I/= Ц/=
%= >>= <<= ^=
[+]= [&]= [|]=
(+)= ‘’= .=
Присваивания (ассоциативность: справа налево)