1)什么是这个阵列的:......这是什么?
["Admin": "admin", "User": "user"]
阵列地图?那这是什么?
[%{"Admin": "admin"}, %{"User": "user"}]
或本:
[%{"Admin": "admin", "User": "user"}]
2)如何利用Enum.map
创建["Admin": "admin", "User": "user"]
?
1)什么是这个阵列的:......这是什么?
["Admin": "admin", "User": "user"]
阵列地图?那这是什么?
[%{"Admin": "admin"}, %{"User": "user"}]
或本:
[%{"Admin": "admin", "User": "user"}]
2)如何利用Enum.map
创建["Admin": "admin", "User": "user"]
?
["Admin": "admin", "User": "user"]
是元组列表,其中键是一个原子。这种列表也被称为“关键字列表”或“关键字”,Elixir有一个模块可以处理这样的列表:Keyword。
iex(1)> ["Admin": "admin", "User": "user"] == [{:Admin, "admin"}, {:User, "user"}]
true
[%{"Admin": "admin"}, %{"User": "user"}]
是地图列表。
[%{"Admin": "admin", "User": "user"}]
是包含1张地图的列表。
请注意,这些都不是“数组”,而是列表。二郎神有一个名为“阵列”的数据结构,但他们很少使用:http://erlang.org/doc/man/array.html
2)如何使用
Enum.map
创建["Admin": "admin", "User": "user"]
?
你需要返回一个2元元组的第一个项目是一个原子,第二个是一个字符串:
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
或者对这种特殊情况下,你可以使用Enum.into
:
iex(3)> Enum.into(map, []) == ["Admin": "admin", "User": "user"]
true
Elixir的iex
外壳具有内置的i
命令只是这些类型的问题。
iex(1)> i ["Admin": "admin", "User": "user"]
Term
[Admin: "admin", User: "user"]
Data type
List
Description
This is what is referred to as a "keyword list". A keyword list is a list
of two-element tuples where the first element of each tuple is an atom.
Reference modules
Keyword, List
这是值得一提的是,在药剂它有一个专门的模块一起工作:['Keyword'(http://elixir-lang.org/docs/stable/elixir/Keyword.html#content) 。 – mudasobwa
@mudasobwa添加了链接,谢谢! – Dogbert