Soru Bir Haritanın anahtar / değer çiftlerinden geçiş yapın


Elixir'de bir haritanın anahtar-değer çiftleri üzerinde nasıl yineleme yapılır?

Bu işe yaramıyor:

my_map = %{a: 1, b: 2, c: 3}

Enum.each my_map, fn %{k => v} ->
    IO.puts "#{k} --> #{v}"
end

18
2017-10-08 22:19


Menşei




Cevaplar:


Dışarıda yinelediğiniz ortaya çıkıyor. Map aynen senin üzerinde yaptığın gibi Keyword List (yani tuple):

Enum.each  %{a: 1, b: 2, c: 3},  fn {k, v} ->
  IO.puts "#{k} --> #{v}"
end 

comprehensions ayrıca çalışmak:

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

Not: Eğer kullanırsan Enum.map/2 ve bir tuple döndürürseniz, Harita yerine bir Anahtar Kelime Listesi ile sonuçlanırsınız. Bir haritaya dönüştürmek için Enum.into/2.


25
2017-10-08 22:19