Elixir-オペレーター
演算子は、特定の数学的または論理的操作を実行するようにコンパイラーに指示する記号です。elixirが提供するオペレーターはたくさんあります。それらは以下のカテゴリーに分けられます-
- 算術演算子
- 比較演算子
- ブール演算子
- その他の演算子
算術演算子
次の表は、Elixir言語でサポートされているすべての算術演算子を示しています。変数を想定A 10と変数を保持します B 20を保持し、次に−
例を表示
オペレーター | 説明 | 例 |
---|---|---|
+ | 2つの数字を追加します。 | A + Bは30を与えます |
- | 最初から2番目の数値を減算します。 | ABは-10を与えます |
* | 2つの数値を乗算します。 | A * Bは200を与えます |
/ | 最初の数値を2番目の数値から除算します。これにより、数値がfloatにキャストされ、floatの結果が得られます。 | A / Bは0.5を与えます。 |
div | この関数は、除算の商を取得するために使用されます。 | div(10,20)は0を与えます |
レム | この関数は、除算の余りを取得するために使用されます。 | rem(A、B)は10を与えます |
比較演算子
Elixirの比較演算子は、他のほとんどの言語で提供されているものとほとんど共通しています。次の表は、Elixirの比較演算子をまとめたものです。変数を想定A 10と変数を保持します B 20を保持し、次に−
例を表示
オペレーター | 説明 | 例 |
---|---|---|
== | 左側の値が右側の値と等しいかどうかを確認します(タイプは、同じタイプでない場合は値をキャストします)。 | A == Bはfalseを与えます |
!= | 左側の値が右側の値と等しくないかどうかを確認します。 | A!= Bはtrueを与えます |
=== | 左側の値のタイプが右側の値のタイプと等しいかどうかを確認し、等しい場合は同じ値を確認します。 | A === Bはfalseを与えます |
!== | 上記と同じですが、等式ではなく不等式をチェックします。 | A!== Bはtrueを与えます |
>> | 左のオペランドの値が右のオペランドの値より大きいかどうかを確認します。はいの場合、条件は真になります。 | A> Bはfalseを与えます |
< | 左のオペランドの値が右のオペランドの値よりも小さいかどうかを確認します。はいの場合、条件は真になります。 | A <Bは真になります |
> = | 左のオペランドの値が右のオペランドの値以上であるかどうかを確認します。はいの場合、条件は真になります。 | A> = Bはfalseを与えます |
<= | 左のオペランドの値が右のオペランドの値以下であるかどうかをチェックします。はいの場合、条件は真になります。 | A <= Bは真になります |
論理演算子
Elixirは6つの論理演算子を提供します:and、or、not、&&、|| および!。最初の3つはand or notは厳密なブール演算子です。つまり、最初の引数がブールであることを期待しています。非ブール引数はエラーを発生させます。次の3つの間、&&, || and !厳密ではないので、ブール値として厳密に最初の値を持つ必要はありません。それらは、厳密な対応物と同じように機能します。変数を想定A 真で可変である B 20を保持し、次に−
例を表示
オペレーター | 説明 | 例 |
---|---|---|
そして | 提供された両方の値がtrueであるかどうかを確認し、trueの場合は、2番目の変数の値を返します。(論理積)。 | AとBは20を与えます |
または | 提供されたいずれかの値が正しいかどうかを確認します。正しい値を返します。それ以外の場合はfalseを返します。(論理または)。 | AまたはBは真になります |
ない | 指定された入力の値を反転する単項演算子。 | Aではなくfalseを与える |
&& | 厳密ではない and。と同じように動作しますand ただし、最初の引数がブール値であるとは想定していません。 | B && Aは20を与えます |
|| | 厳密ではない or。と同じように動作しますor ただし、最初の引数がブール値であるとは想定していません。 | B || Aは真になります |
! | 厳密ではない not。と同じように動作しますnot ただし、引数がブール値であるとは想定していません。 | !Aはfalseを与えます |
NOTE −および、または、&&および|| || 短絡オペレータです。これは、の最初の引数がandfalseの場合、2番目のものをさらにチェックしません。そして、の最初の引数がortrueの場合、2番目のものはチェックされません。例えば、
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 ||| Bは7を与える |
>>> | ビット単位の右シフト演算子は、第1オペランドのビットを第2オペランドで指定された数だけ右にシフトします。 | A >>> Bは0を与えます |
<<< | ビット単位の左シフト演算子は、第1オペランドのビットを第2オペランドで指定された数だけ左にシフトします。 | A <<< Bは320を与えます |
^^^ | ビット単位のXOR演算子は、両方のオペランドが異なる場合にのみ、結果にビットをコピーします。 | A ^^^ Bは3を与えます |
~~~ | 単項ビット単位は、指定された数値のビットを反転しません。 | ~~~ Aは-6を与えます |
その他の演算子
上記の演算子の他に、Elixirは次のようなさまざまな演算子も提供しています。 Concatenation Operator, Match Operator, Pin Operator, Pipe Operator, String Match Operator, Code Point Operator, Capture Operator, Ternary Operator それはそれを非常に強力な言語にします。
例を表示