タプルについて
タプルは、情報を気軽にひとまとめにするためによく使われます。Elixirでは、関数の戻り値とステータスをまとめるのがよくあるパターンです。
File.read("hello.txt")
# => {:ok, "World"}
File.read("invalid.txt")
# => {:error, :enoent}
- タプルのリテラルは、波括弧(
{})で囲みます。
- タプルは、どんなデータ型でも連続したメモリに格納できます。このメモリは、タプルが作成されるときに確保されます。
- タプルは、読み取りアクセスを定数時間で行えます。
- タプルを操作するときは、既存のタプルを変更するのではなく、新しいタプルが作成されます。
- タプルの性能上の特徴から、関連する情報をまとめて保持するのには最適ですが、繰り返し処理が必要な要素や、増えたり減ったりする可能性のある要素の集まりを保持するのには向いていません。後者の場合は、配列のほうが適しています。
-
KernelモジュールとTupleモジュールには、タプルを扱うための便利な関数が用意されています。