Skip to content

基本概念

Elixir は、Ruby に似た直感的な構文と、並行処理に特化した強力な機能を併せ持つプログラミング言語です。ここでは、Elixir の開発を始めるにあたって知っておきたい基本的な概念を解説します。

Elixir のデータ型は、一般的なプログラミング言語と似ていますが、いくつかの独自の特徴があります。

整数と浮動小数点数があります。1_000_000 のようにアンダースコアを使って読みやすく記述できます。

ダブルクォーテーション "" で囲みます。UTF-8 がデフォルトで、日本語も問題なく扱えます。文字列の連結には <> 演算子を使います。

"hello" <> " world" # => "hello world"

名前がその値そのものとなる定数のようなデータ型です。コロン : から始まります。パターンマッチングや一意な識別子としてよく使われます。

:ok
:error

順序付けられた値の集合で、角括弧 [] で囲みます。異なるデータ型を混在させることができます。

[1, 2, "three", :four]

順序付けられた値の集合で、波括弧 {} で囲みます。タプルは要素数が多いとパフォーマンスが低下するため、一般的に少数の要素を扱う際に使われます。

{:ok, "success"}

キーと値のペアを格納するデータ型です。波括弧 %{} を使って記述します。JavaScript のオブジェクトや Python の辞書に相当します。

%{"name" => "Alice", "age" => 30}

Elixir の構文は非常に簡潔で、読みやすさを重視しています。

def キーワードを使って関数を定義します。

def add(a, b) do
a + b
end

関数はすべてモジュールに属します。関連する関数を一つのモジュールにまとめることで、コードを整理できます。

defmodule Math do
def add(a, b) do
a + b
end
end

定義した関数は モジュール名.関数名 の形式で呼び出します。

Math.add(1, 2) # => 3

前の関数の結果を、次の関数の第一引数に渡すための演算子です。複数の関数をチェーンでつなぎ、データの流れを直感的に記述できます。

"hello"
|> String.upcase()
|> String.length()
# => 5

Elixir の最も重要な特徴の一つです。= 演算子は、代入ではなく「パターンマッチング」を意味します。左辺のパターンが右辺の値と一致するかどうかを評価します。

[a, b, 3] = [1, 2, 3] # => aは1, bは2にマッチ

これらの基本的な概念を理解することで、Elixir の開発をスムーズに始めることができます。