["Admin": "admin", "User": "user"]
ist eine Liste von Tupeln, wobei der Schlüssel ein Atom ist. Diese Art von Liste wird auch "Keyword-Liste" oder einfach "Keyword" genannt und Elixir hat ein Modul, um mit solchen Listen zu arbeiten: Keyword.
iex(1)> ["Admin": "admin", "User": "user"] == [{:Admin, "admin"}, {:User, "user"}]
true
[%{"Admin": "admin"}, %{"User": "user"}]
ist eine Liste der Karten.
[%{"Admin": "admin", "User": "user"}]
ist eine Liste mit 1 Karte.
Beachten Sie, dass keine dieser "Arrays", sondern Listen sind. Erlang hat eine Datenstruktur "Array" genannt, aber sie sind selten verwendet: http://erlang.org/doc/man/array.html
2) Wie ["Admin": "admin", "User": "user"]
erstellen Enum.map
mit?
Sie benötigen ein 2 Element Tupels mit dem ersten Punkt zurück ein Atom und die zweite eine Zeichenfolge sein:
iex(1)> map = %{"Admin": "admin", "User": "user"}
%{Admin: "admin", User: "user"}
iex(2)> Enum.map(map, fn {k, v} -> {k, v} end) == ["Admin": "admin", "User": "user"]
true
Oder für diesen speziellen Fall können Sie nur verwenden Enum.into
:
iex(3)> Enum.into(map, []) == ["Admin": "admin", "User": "user"]
true
Es lohnt sich zu erwähnen, dass in Elixir es ein eigenes Modul hat, mit zu arbeiten: [ 'Keyword'] (http://elixir-lang.org/docs/stable/elixir/Keyword.html#content) . – mudasobwa
@mudasobwa hat einen Link hinzugefügt, danke! – Dogbert