Elixir-example-misc
Elixir-その他の演算子
上記の演算子以外に、Elixirは非常に強力な言語にする他の演算子も提供しています。
連結演算子
Elixirは、文字列連結演算子「<>」を提供します。 これは、2つの文字列を連結するために使用されます。 例えば、
IO.puts("Hello"<>" "<>"world")
上記のコマンドは、次の結果を生成します-
Hello World
一致
一致演算子 '=' は、言語のパターン一致機能を使用します。 この演算子については、パターンマッチングに関する次の章で詳しく説明します。
=は単なる代入演算子ではないことに注意してください。 左の値を変数として、右の値をリテラルまたは別の変数として使用すると、右からの値が変数にバインドされます。つまり、割り当てが行われます。 しかし、右側に変数があり、左側にリテラルがある場合、パターンマッチングが行われます。 両方の値がリテラルである場合も同様です。
Pin
ピン演算子 '^' は、変数名の接頭辞として使用される単項演算子です。 一致演算子で使用した場合、変数には値が割り当てられず、その値に一致することを確認します。 例えば、
a = 12 #assignment
a = 13 #assignment
^a = 13 #Pattern matching
Pipe
パイプ演算子 '|>'は、Unixシェルのパイプ演算子のように機能します。 ある関数から別の関数に出力をパイプすることができます。 たとえば、 IO.puts で加算の結果をパイプする必要がある場合、次を使用します-
(4+3) |> IO.puts
上記のプログラムを実行すると、次の結果が生成されます-
7
これにより、IO.puts関数での加算結果が_piped_であることが認識されます。 これにより、コンソールに7が印刷されます。
文字列一致
文字列一致演算子 '=〜'は、左側に文字列を、右側に文字列または正規表現を取ります。 右側の文字列が左側の部分文字列の場合、trueが返されます。 右側の正規表現が左側の文字列と一致する場合、trueが返されます。 それ以外の場合はfalseが返されます。 例えば、
IO.puts("finddevguides" =~ "poi")
IO.puts("finddevguides" =~ ~r/[a-z]*/)
IO.puts("finddevguides" =~ ~r/[0-9]*/)
上記のプログラムを実行すると、次の結果が生成されます-
true
true
true
正規表現は、Elixirでは '〜r' プレフィックスで始まることに注意してください。
コードポイント
単項演算子 '?'文字のUTF-8コードポイントをすぐ右に返します。 1文字しか使用できず、エスケープシーケンスを受け入れます。 例えば、
IO.puts(?a)
IO.puts(?\s)
上記のプログラムを実行すると、次の結果が生成されます-
97
32
キャプチャー
匿名関数を定義する場合、キャプチャ演算子 '&'が使用されます。 これについては、機能の章で詳しく説明します。
三元系
Elixirには三項演算子がありません。 if elseステートメントを使用して同じ機能を実現できます-
a = if true, do: "True!", else: "False!"
In
この演算子は、左側のアイテムが右側の列挙可能な構造に存在するかどうかを確認します。 たとえば、リスト、タプルなどのアトムをチェックできます。 この演算子を使用して原子の-
:yes in [:true, :false, :yes]
上記のステートメントは、リストに*:yes *が存在するためtrueを返します。