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