Question Boucle à travers les paires clé-valeur d'une carte


Comment itérer sur les paires clé-valeur 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

16
2017-10-08 22:19


origine


Réponses:


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 travaille aussi:

for  {k, v}  <-  %{a: 1, b: 2, c: 3}  do
  IO.puts "#{k} --> #{v}"
end

Remarque: Si tu utilises Enum.map/2 et retourner un tuple, vous allez vous retrouver avec une liste de mots-clés au lieu de Map. Pour le convertir en carte, utilisez Enum.into/2.


22
2017-10-08 22:19