Clojure - Операторы
An operator - это символ, который сообщает компилятору о необходимости выполнения определенных математических или логических операций.
Clojure имеет следующие типы операторов -
- Арифметические операторы
- Операторы отношения
- Логические операторы
- Побитовые операторы
Note - В Clojure операторы и операнды работают следующим образом.
Синтаксис
(operator operand1 operand2 operandn)
Например,
пример
(+ 1 2)
В приведенном выше примере выполняется арифметическая операция с числами 1 и 2.
Арифметические операторы
Язык Clojure поддерживает обычные арифметические операторы, как и любой другой язык. Ниже приведены арифметические операторы, доступные в Clojure.
Показать примеры
| Оператор | Описание | пример |
|---|---|---|
| + | Сложение двух операндов | (+ 1 2) даст 3 |
| - | Вычитает второй операнд из первого | (- 2 1) даст 1 |
| * | Умножение обоих операндов | (* 2 2) даст 4 |
| / | Деление числителя на знаменатель | (float (/ 3 2)) даст 1,5 |
| inc | Инкрементальные операторы, используемые для увеличения значения операнда на 1 | inc 5 даст 6 |
| декабрь | Инкрементальные операторы, используемые для уменьшения значения операнда на 1 | 5 дек даст 4 |
| Максимум | Возвращает самый большой из своих аргументов | макс 1 2 3 вернет 3 |
| мин | Возвращает наименьший из своих аргументов | мин 1 2 3 вернет 1 |
| rem | Остаток от деления первого числа на второе | rem 3 2 даст 1 |
Операторы отношения
Операторы отношения позволяют сравнивать объекты. Ниже приведены операторы отношения, доступные в Clojure.
Показать примеры
| Оператор | Описание | пример |
|---|---|---|
| знак равно | Проверяет равенство двух объектов | (= 2 2) даст истину |
| не = | Проверяет разницу между двумя объектами | (not = 3 2) даст истину |
| < | Проверяет, меньше ли левый объект правого операнда | (<2 3) даст истину |
| <= | Проверяет, меньше ли левый объект правому операнду или равен ему | (<= 2 3) даст истину |
| > | Проверяет, больше ли левый объект правого операнда | (> 3 2) даст истину |
| > = | Проверяет, больше ли левый объект правому операнду или равен ему | (> = 3 2) даст истину |
Логические операторы
Логические операторы используются для вычисления логических выражений. Ниже приведены логические операторы, доступные в Groovy.
Показать примеры
| Оператор | Описание | пример |
|---|---|---|
| and | Это логический оператор "и" | (или правда правда) даст истину |
| or | Это логический оператор "или" | (и истина ложь) даст ложь |
| not | Это логический оператор «не». | (не ложь) даст истину |
В следующем фрагменте кода показано, как можно использовать различные операторы.
Побитовые операторы
Clojure предоставляет четыре побитовых оператора. Ниже приведены побитовые операторы, доступные в Clojure.
Показать примеры
| Sr. No. | Оператор и описание |
|---|---|
| 1 | bit-and Это побитовый оператор «И» |
| 2 | bit-or Это побитовый оператор "или" |
| 3 | bit-xor Это побитовый «xor» или исключающий оператор «или». |
| 4 | bit-not Это оператор побитового отрицания |
Ниже приводится таблица истинности, демонстрирующая эти операторы.
| п | q | p & q | p | q | p ^ q |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 |
Приоритет оператора
Как и в случае с LISP в целом, не нужно беспокоиться о приоритете операторов. Это одно из преимуществ S-выражений и префиксной нотации. Все функции выполняются слева направо и наизнанку. Операторы в Clojure - это просто функции, и все они полностью заключены в скобки.