Comment parcourir les paires de valeurs-clés d'une carte dans Elixir?
Cela ne fonctionne pas:
my_map = %{a: 1, b: 2, c: 3}
Enum.each my_map, fn %{k => v} ->
IO.puts "#{k} --> #{v}"
end
Il s'avère que vous parcourez un Map
exactement comme vous le faites sur un Keyword List
(c'est-à-dire que vous utilisez un Tuple
):
Enum.each %{a: 1, b: 2, c: 3}, fn {k, v} ->
IO.puts "#{k} --> #{v}"
end
Compréhensions fonctionnent également:
for {k, v} <- %{a: 1, b: 2, c: 3} do
IO.puts "#{k} --> #{v}"
end
Remarque: Si vous utilisez Enum.map/2
et renvoyez un tuple, vous vous retrouverez avec une liste de mots clés au lieu de la carte. Pour le convertir en carte, utilisez Enum.into/2
.