Оператор — это символ, который указывает компилятору выполнять определенные математические или логические манипуляции. Есть много операторов, предоставляемых эликсиром. Они делятся на следующие категории —
- Арифметические операторы
- Операторы сравнения
- Булевы операторы
- Разные операторы
Арифметические Операторы
В следующей таблице приведены все арифметические операторы, поддерживаемые языком Elixir. Предположим, что переменная A содержит 10, а переменная B содержит 20, тогда —
оператор | Описание | пример |
---|---|---|
+ | Добавляет 2 номера. | А + Б даст 30 |
— | Вычитает второе число из первого. | АБ даст -10 |
* | Умножает два числа. | А * Б даст 200 |
/ | Делит первое число на второе. Это бросает числа в числах с плавающей точкой и дает результат числа с плавающей точкой | А / Б даст 0,5. |
ДИВ | Эта функция используется для получения отношения деления. | div (10,20) даст 0 |
рем | Эта функция используется для получения остатка от деления. | rem (A, B) даст 10 |
Операторы сравнения
Операторы сравнения в Elixir чаще всего встречаются в большинстве других языков. В следующей таблице приведены операторы сравнения в Elixir. Предположим, что переменная A содержит 10, а переменная B содержит 20, тогда —
оператор | Описание | пример |
---|---|---|
== | Проверяет, равно ли значение слева значению справа (тип сбрасывает значения, если они не одного типа). | A == B даст ложное |
знак равно | Проверяет, не равно ли значение слева значению справа. | A! = B даст истинное |
=== | Проверяет, равен ли тип значения слева типу значения справа, если да, то проверьте то же самое для значения. | A === B даст ложное |
==! | То же, что и выше, но проверяет неравенство вместо равенства. | А! == Б даст правду |
> | Проверяет, больше ли значение левого операнда, чем значение правого операнда; если да, то условие становится истинным. | A> B даст ложное |
< | Проверяет, меньше ли значение левого операнда, чем значение правого операнда; если да, то условие становится истинным. | А <Б даст правду |
> = | Проверяет, больше ли значение левого операнда или равно значению правого операнда; если да, то условие становится истинным. | A> = B даст ложное |
<= | Проверяет, меньше ли значение левого операнда или равно значению правого операнда; если да, то условие становится истинным. | A <= B даст истинное |
Логические операторы
Elixir предоставляет 6 логических операторов: и, или, нет, &&, || а также !. Первые три, или нет, являются строгими логическими операторами, что означает, что они ожидают, что их первый аргумент будет логическим. Не логический аргумент вызовет ошибку. В то время как следующие три, &&, || а также ! не являются строгими, не требуют, чтобы мы имели первое значение строго как логическое значение. Они работают так же, как их строгие коллеги. Предположим, что переменная A истинна, а переменная B содержит 20, тогда
оператор | Описание | пример |
---|---|---|
а также | Проверяет, верны ли оба предоставленных значения, если да, то возвращает значение второй переменной. (Логично и). | А и Б дадут 20 |
или же | Проверяет, является ли любое из указанных значений правдивым. Возвращает, какое бы значение не было правдивым. Остальное возвращает ложь. (Логично или). | А или Б даст истинное |
не | Унарный оператор, который инвертирует значение заданного входа. | не А даст ложный |
&& | Не строгий и Работает так же, как и, но не ожидает, что первый аргумент будет логическим. | B && A даст 20 |
|| | Нестрогий или . Работает так же, как или, но не ожидает, что первый аргумент будет логическим. | B || А даст правду |
! | Не строгий нет . Работает так же, как и нет, но не ожидает, что аргумент будет логическим. | ! А даст ложное |
ПРИМЕЧАНИЕ — и , или , && и || || являются операторами короткого замыкания. Это означает, что если первый аргумент и равен false, то он больше не будет проверять второй. И если первый аргумент или является истинным, то он не будет проверять второй. Например,
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 для следующих примеров:
оператор | Описание | пример |
---|---|---|
&&& | Побитовое и оператор копирует немного, чтобы привести, если это существует в обоих операндах. | A &&& B даст 4 |
||| | Побитовый или оператор копирует бит, чтобы получить результат, если он существует в любом из операндов. | A ||| Б даст 7 |
>>> | Побитовый оператор сдвига вправо сдвигает первый бит операнда вправо на число, указанное во втором операнде. | A >>> B даст 0 |
<<< | Побитовый оператор сдвига влево сдвигает первые биты операнда влево на число, указанное во втором операнде. | А <<< Б даст 320 |
^^^ | Побитовый оператор XOR копирует бит, чтобы получить результат, только если он отличается для обоих операндов. | А ^^^ Б даст 3 |
~~~ | Унарное поразрядное не инвертирует биты на заданное число. | ~~~ А даст -6 |
Разные Операторы
Помимо вышеперечисленных операторов, Elixir также предоставляет ряд других операторов, таких как оператор конкатенации, оператор совпадения, оператор вывода, оператор конвейера, оператор сопоставления строки, оператор кодовой точки, оператор захвата, троичный оператор, которые делают его довольно мощным языком.