Elixir Language
マップとキーワードリスト
サーチ…
構文
- map =%{} //空のマップを作成する
- map =%{:a => 1、:b => 2} //空でないマップを作成する
- list = [] //空のリストを作成する
- list = [{:a、1}、{:b、2}] //空でないキーワードリストを作成する
備考
Elixirはマップとキーワードリストという 2つの連想データ構造を提供します 。
マップはElixirのKey-Value(他の言語の辞書またはハッシュとも呼ばれます)タイプです。
キーワードリストは、特定のキーに値を関連付けるキー/値のタプルです。これらは一般に、関数呼び出しのオプションとして使用されます。
マップの作成
マップはElixirのKey-Value(他の言語の辞書またはハッシュとも呼ばれます)タイプです。 %w{}
構文を使用してマップを作成します。
%{} // creates an empty map
%{:a => 1, :b => 2} // creates a non-empty map
キーと値は任意の型を使用できます:
%{"a" => 1, "b" => 2}
%{1 => "a", 2 => "b"}
さらに、キーと値の両方にタイプが混在するマップを持つことができます: "
// keys are integer or strings
%{1 => "a", "b" => :foo}
// values are string or nil
%{1 => "a", 2 => nil}
マップ内のすべてのキーがアトムの場合、便宜上キーワード構文を使用できます。
%{a: 1, b: 2}
キーワードリストの作成
キーワードリストはキー/値のタプルであり、一般に関数呼び出しのオプションとして使用されます。
[{:a, 1}, {:b, 2}] // creates a non-empty keyword list
キーワードリストには、同じキーが複数回繰り返されることがあります。
[{:a, 1}, {:a, 2}, {:b, 2}]
[{:a, 1}, {:b, 2}, {:a, 2}]
キーと値には任意の型を使用できます。
[{"a", 1}, {:a, 2}, {2, "b"}]
マップとキーワードリストの違い
地図とキーワードリストには異なるアプリケーションがあります。たとえば、マップには同じ値のキーが2つあり、順序付けされていません。逆に、キーワードリストはパターンマッチングで使用するのが少し難しい場合もあります。
マップとキーワードリストの使用例をいくつか紹介します。
次の場合にキーワードリストを使用します。
- 注文する要素が必要です
- 同じキーを持つ複数の要素が必要です
次の場合にマップを使用します。
- いくつかのキー/値に対してパターンマッチしたい
- 同じキーを持つ複数の要素は必要ありません
- あなたが明示的にキーワードリストを必要としないときはいつでも
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow