web-dev-qa-db-fra.com

Parcourez les paires clé-valeur d'une carte

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
19
Sheharyar

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 .

33
Sheharyar