Эликсир - Операторы
Оператор - это символ, который сообщает компилятору о необходимости выполнения определенных математических или логических операций. Эликсир предоставляет МНОГО операторов. Они разделены на следующие категории -
- Арифметические операторы
- Операторы сравнения
- Логические операторы
- Разные операторы
Арифметические операторы
В следующей таблице показаны все арифметические операторы, поддерживаемые языком Elixir. Предположим переменнуюA содержит 10 и переменную B держит 20, то -
Показать примеры
Оператор | Описание | пример |
---|---|---|
+ | Складывает 2 числа. | A + B даст 30 |
- | Вычитает второе число из первого. | AB даст -10 |
* | Умножает два числа. | A * B даст 200 |
/ | Делит первое число от второго. Это приводит числа в число с плавающей запятой и дает результат с плавающей запятой | A / B даст 0,5. |
div | Эта функция используется для получения частного при делении. | div (10,20) даст 0 |
rem | Эта функция используется для получения остатка от деления. | rem (A, B) даст 10 |
Операторы сравнения
Операторы сравнения в Elixir в основном общие с операторами большинства других языков. В следующей таблице приведены операторы сравнения в Elixir. Предположим переменнуюA содержит 10 и переменную B держит 20, то -
Показать примеры
Оператор | Описание | пример |
---|---|---|
== | Проверяет, равно ли значение слева значению справа (тип приводит значения, если они не одного типа). | A == B даст false |
знак равно | Проверяет, не совпадает ли значение слева со значением справа. | A! = B даст истину |
=== | Проверяет, соответствует ли тип значения слева типу значения справа, если да, то проверяет то же самое для значения. | A === B даст false |
! == | То же, что и выше, но проверяет неравенство, а не равенство. | A! == B даст истину |
> | Проверяет, больше ли значение левого операнда, чем значение правого операнда; если да, то условие выполняется. | A> B даст false |
< | Проверяет, меньше ли значение левого операнда, чем значение правого операнда; если да, то условие выполняется. | A <B даст истину |
> = | Проверяет, больше ли значение левого операнда или равно значению правого операнда; если да, то условие выполняется. | A> = B даст false |
<= | Проверяет, меньше ли значение левого операнда или равно значению правого операнда; если да, то условие выполняется. | A <= B даст истину |
Логические операторы
В Elixir есть 6 логических операторов: and, or, not, &&, || и !. Первые три,and or notявляются строгими логическими операторами, что означает, что они ожидают, что их первый аргумент будет логическим. Не логический аргумент вызовет ошибку. Пока следующие три,&&, || and !не являются строгими, не требуют, чтобы первое значение было строго логическим. Они работают так же, как и их строгие собратья. Предположим переменнуюA верно и переменно B держит 20, то -
Показать примеры
Оператор | Описание | пример |
---|---|---|
и | Проверяет, истинны ли оба предоставленных значения, если да, то возвращает значение второй переменной. (Логично и). | A и B дадут 20 |
или же | Проверяет, истинно ли любое из указанных значений. Возвращает любое из истинных значений. Иначе возвращает false. (Логическое или). | A или B даст истину |
не | Унарный оператор, инвертирующий значение заданного ввода. | не А даст ложь |
&& | Нестрогий and. Работает так же, какand но не ожидает, что первый аргумент будет логическим. | B && A даст 20 |
|| | Нестрогий or. Работает так же, какor но не ожидает, что первый аргумент будет логическим. | B || А даст истину |
! | Нестрогий not. Работает так же, какnot но не ожидает, что аргумент будет логическим. | ! A даст false |
NOTE −и , или , && и || || операторы короткого замыкания. Это означает, что если первый аргументandложно, то второй проверять не будет. И если первый аргументorверно, то второй проверять не будет. Например,
false and raise("An error")
#This won't raise an error as raise function wont get executed because of short
#circuiting nature of and operator
Побитовые операторы
Побитовые операторы работают с битами и выполняют побитовую операцию. Elixir предоставляет побитовые модули как часть пакетаBitwise, поэтому для их использования необходимо использовать побитовый модуль. Чтобы использовать его, введите в свою оболочку следующую команду -
use Bitwise
Предположим, что A равно 5, а B равно 6 для следующих примеров:
Показать примеры
Оператор | Описание | пример |
---|---|---|
&&& | Побитовый оператор and копирует бит в результат, если он существует в обоих операндах. | A &&& B даст 4 |
||| | Побитовый оператор или копирует бит в результат, если он существует в любом из операндов. | А ||| B даст 7 |
>>> | Оператор побитового сдвига вправо сдвигает биты первого операнда вправо на число, указанное во втором операнде. | A >>> B даст 0 |
<<< | Оператор побитового сдвига влево сдвигает биты первого операнда влево на число, указанное во втором операнде. | <<< B даст 320 |
^^^ | Побитовый оператор XOR копирует бит в результат, только если он отличается для обоих операндов. | A ^^^ B даст 3 |
~~~ | Унарный побитовый не инвертирует биты данного числа. | ~~~ А даст -6 |
Разные операторы
Помимо перечисленных выше операторов, Elixir также предоставляет ряд других операторов, например Concatenation Operator, Match Operator, Pin Operator, Pipe Operator, String Match Operator, Code Point Operator, Capture Operator, Ternary Operator что делает его довольно мощным языком.
Показать примеры