サーチ…


構文

  • 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