Оператор
Введение
Язык Wave предоставляет различные операторы для выполнения вычислений между переменными, логических решений, сравнений, битовых операций и т.д.
В этом документе подробно описаны основные операторы, доступные в Wave, классифицированные по типу с объяснением их работы и примерами использования.
Операторы делятся на следующие категории:
- Арифметические операторы
- Операторы сравнения
- Логические операторы
- Побитовые операторы
- Операторы присваивания
- Другие специальные операторы
Арифметические операторы
Арифметические операторы выполняют основные математические операции с числовыми данными.
| Оператор | Описание | Пример (a = 10, b = 3) |
|---|---|---|
+ | Сложение | a + b → 13 |
- | Вычитание | a - b → 7 |
* | Умножение | a * b → 30 |
/ | Деление | a / b → 3 (целочисленное деление) |
% | Остаток от деления | a % b → 1 |
Операторы сравнения
Операторы сравнения возвращают значение bool в результате сравнения двух значений.
| Оператор | Описание | Пример (a = 10, b = 3) |
|---|---|---|
== | Равно | a == b → false |
!= | Не равно | a != b → true |
< | Меньше | a < b → false |
> | Больше | a > b → true |
<= | Меньше или равно | a <= 10 → true |
>= | Больше или равно | a >= b → true |
Логические операторы
Логические операторы обрабатывают комбинации истинности для значений bool.
| Оператор | Название | Описание | Пример |
|---|---|---|---|
&& | Логическое И | true, только если оба значения true | true && false → false |
| \`\ | Логическое ИЛИ | true, если хотя бы одно значение true | \`true \ |
! | Логическое НЕ | Инвертирует true в false и false в true | !true → false |
Побитовые операторы
Побитовые операторы манипулируют целочисленными данными на уровне битов.
| Оператор | Название | Описание | Пример |
|---|---|---|---|
& | Побитовое И | 1, если оба бита равны 1 | a & b → 2 |
| \`\ | Побитовое ИЛИ | 1, если хотя бы один бит равен 1 | b→7\` |
^ | Побитовое XOR | 1, когда биты разные | a ^ b → 5 |
~ | Побитовое НЕ | Инвертировать биты | ~a → -7 |
<< | Сдвиг влево | Сдвигает биты влево | a << 1 → 12 |
>> | Сдвиг вправо | Сдвигает биты вправо | a >> 1 → 3 |
Операторы присваивания
Используются для присваивания значений переменным. В большинстве случаев можно сократить, комбинируя с арифметическими операторами.
| Оператор | Описание | Пример (a = 5) |
|---|---|---|
= | Основное присваивание | a = 10 |
+= | Присваивание после сложения | a += 2 → 7 |
-= | Присваивание после вычитания | a -= 1 → 4 |
*= | Присваивание после умножения | a *= 3 → 15 |
/= | Присваивание после деления | a /= 5 → 1 |
%= | Присваивание остатка | a %= 4 → 1 |
Другие специальные операторы
Wave также предоставляет операторы с уникальным или особым значением.
| Оператор | Название | Описание | Пример |
|---|---|---|---|
?? | Оператор объединения с null | Если левое значение равно null, используется правое значение | a ?? b → если a равно null, то b |
?: | Условный оператор (тернарный оператор) | Выбор значения в зависимости от условия | условие ? истинное значение : ложное значение |
в | Проверка на принадлежность | Проверка, содержится ли значение в коллекции | "a" в списке |
является | Оператор сравнения типов | Проверка типа значения | x являе тся i32 |
!& | NAND | Логическая операция NAND | Расширенные логические операции |
| \`!\ | NOR | Логическая операция NOR | Расширенные логические операции |
~^ | XNOR | Логическая операция XNOR | Расширенные логические операции |
Резюме
Wave предлагает разнообразные операторы, от математических операций и логического определения до манипуляции битами и условных переходов. Эти операторы взаимодействуют с переменными, формируют условия и являются важными инструментами для сложных вычислений или управления потоками.
Приоритет и направление связывания каждого оператора будут рассмотрены в разделе "Приоритет и порядок вычисления".