Цикл через пары ключей ключа Как перебирать пары ключ-значение карты в Elixir? Это не работает: my_map = %{a: 1, b: 2, c: 3} Enum.each my_map, fn %{k => v} -> IO.puts "#{k} --> #{v}" end Ответ 1 Оказывается, вы выполняете итерацию по Map точно так же, как и по Keyword List (т.е. вы используете tuple): Enum.each %{a: 1, b: 2, c: 3}, fn {k, v} -> IO.puts "#{k} --> #{v}" end Понимания также работают: for {k, v} <- %{a: 1, b: 2, c: 3} do IO.puts "#{k} --> #{v}" end Примечание. Если вы используете Enum.map/2 и Enum.map/2 кортеж, в итоге вы получите список ключевых слов вместо карты. Чтобы преобразовать его в карту, используйте Enum.into/2.
Ответ 1 Оказывается, вы выполняете итерацию по Map точно так же, как и по Keyword List (т.е. вы используете tuple): Enum.each %{a: 1, b: 2, c: 3}, fn {k, v} -> IO.puts "#{k} --> #{v}" end Понимания также работают: for {k, v} <- %{a: 1, b: 2, c: 3} do IO.puts "#{k} --> #{v}" end Примечание. Если вы используете Enum.map/2 и Enum.map/2 кортеж, в итоге вы получите список ключевых слов вместо карты. Чтобы преобразовать его в карту, используйте Enum.into/2.