地图

Erlang 中的映射相当于 Perl 中的哈希值或 Python 中的字典 ,它是一个键/值存储。要列出存储的每个值,你可以列出每个键,并返回键/值对。第一个循环给你一个想法:

loop(Map) when is_map(Map) -> 
  Keys = maps:keys(Map),
  loop(Map, Keys).

loop(_ , []) ->
  ok;
loop(Map, [Head|Tail]) ->
  Value = maps:get(Head, Map),
  io:format("~p: ~p~n", [Head, Value]),
  loop(Map, Tail).

你可以这样执行:

Map = #{1 => "one", 2 => "two", 3 => "three"}.
loop(Map).
% will return:
% 1: "one"
% 2: "two"
% 3: "three"