# Операторы
# Арифметические операторы
| Оператор | Описание | Сложность |
|---|---|---|
| + | Сложение | 1 для Int 1 для BigInt в Стандартной библиотеке версии 8 8 для BigInt в Стандартной библиотеке версии 7 и 6 1 для String 2 для ByteVector |
| - | Вычитание | 1 для Int 1 для BigInt в Стандартной библиотеке версии 8 8 для BigInt в Стандартной библиотеке версии 7 и 6 |
| * | Умножение | 1 для Int 1 для BigInt в Стандартной библиотеке версии 8 64 для BigInt в Стандартной библиотеке версии 7 и 6 |
| / | Деление | 1 для Int 1 для BigInt в Стандартной библиотеке версии 8 64 для BigInt в Стандартной библиотеке версии 7 и 6 |
| % | Нахождение остатка от деления | 1 для Int 1 для BigInt в Стандартной библиотеке версии 8 64 для BigInt в Стандартной библиотеке версии 7 и 6 |
| - | Унарный минус | 1 для Int 1 для BigInt в Стандартной библиотеке версии 8 8 для BigInt в Стандартной библиотеке версии 7 и 6 |
Обратите внимание:
Оператор / использует метод округления FLOOR, см. Переменные округления. Например, результат выражения
-1/100равен-1.Минус с пробелом после него — всегда бинарный оператор. Например, код
let b = 100 - 100определяет переменную
bи присваивает ей значение 0.Унарный минус располагается в начале строки или элемента, без пробела после него. Например, код
let b = 100 -100является выражением, значение которого равно -100.
# Операторы сравнения
| Оператор | Описание | Сложность |
|---|---|---|
| < | Меньше чем | 1 для Int 1 для BigInt в Стандартной библиотеке версии 8 8 для BigInt в Стандартной библиотеке версии 7 и 6 |
| > | Больше чем | 1 для Int 1 для BigInt в Стандартной библиотеке версии 8 8 для BigInt в Стандартной библиотеке версии 7 и 6 |
| <= | Меньше или равно | 1 для Int 1 для BigInt в Стандартной библиотеке версии 8 8 для BigInt в Стандартной библиотеке версии 7 и 6 |
| >= | Больше или равно | 1 для Int 1 для BigInt в Стандартной библиотеке версии 8 8 для BigInt в Стандартной библиотеке версии 7 и 6 |
| == | Равно | 1 |
| != | Не равно | 1 |
# Операторы локального определения
| Оператор | Описание | Сложность |
|---|---|---|
| func | Определение функции | 0* |
| let | Ленивое определение переменной | 0 |
| strict | Нетерпеливое определение переменной | 1 или 2* |
* Вызов любой функции имеет сложность не менее 1. Подробнее об этом — в разделе Сложность.
** Подробнее в разделе Сложность.
# Операторы выбора
| Оператор | Описание | Сложность |
|---|---|---|
| if ... then ... else | Ветвление | 0* |
| match ... case | Сопоставление с шаблоном | Кол-во case* |
* Подробнее в разделе Сложность.
# Операторы списка
| Оператор | Описание | Сложность |
|---|---|---|
| ++ | Конкатенация | 4 |
| :+ | Добавление элемента в конец списка | 1 |
| :: | Добавление элемента в начало списка | 1 |
См. примеры в разделе List.
# Логические операторы
| Оператор | Описание | Сложность |
|---|---|---|
| && | Логическое И | 0 |
| || | Логическое ИЛИ | 0 |
| ! | Логическое отрицание | 1 |
Обратите внимание: логические операторы работают только со значениями типа Boolean. Значения типа Int не поддерживаются.