10
如何在Elixir中迭代地图的键值对?通过地图的键值对循环
这不起作用:
my_map = %{a: 1, b: 2, c: 3}
Enum.each my_map, fn %{k => v} ->
IO.puts "#{k} --> #{v}"
end
如何在Elixir中迭代地图的键值对?通过地图的键值对循环
这不起作用:
my_map = %{a: 1, b: 2, c: 3}
Enum.each my_map, fn %{k => v} ->
IO.puts "#{k} --> #{v}"
end
原来我们通过遍历Map
酷似你在Keyword List
(即您使用tuple
):
Enum.each %{a: 1, b: 2, c: 3}, fn {k, v} ->
IO.puts "#{k} --> #{v}"
end
Comprehensions也工作:
for {k, v} <- %{a: 1, b: 2, c: 3} do
IO.puts "#{k} --> #{v}"
end
注意:如果您使用Enum.map/2
并返回一个元组,您将最终得到一个关键字列表而不是Map。要将其转换为地图,请使用Enum.into/2
。