Erlang中实现Map到键值元组列表转换的函数方法
Erlang Map转键值元组列表的方法
方法一:使用内置函数(推荐)
Erlang标准库的maps模块自带to_list/1函数,能直接把Map转换成包含键值元组的列表,这是最简洁高效的方案:
A = #{a => 1, b => 2, c => 3}, List = maps:to_list(A).
执行后List的值就是 [{a,1},{b,2},{c,3}]。
方法二:手动实现递归转换
如果需要自定义转换逻辑(比如过滤特定键值、调整元组顺序),可以自己写递归函数实现:
map_to_list(Map) -> map_to_list(maps:keys(Map), Map, []). map_to_list([Key|Rest], Map, Acc) -> Value = maps:get(Key, Map), map_to_list(Rest, Map, [{Key, Value}|Acc]); map_to_list([], _, Acc) -> lists:reverse(Acc).
调用示例:
A = #{a => 1, b => 2, c => 3}, List = map_to_list(A).
执行后同样能得到目标列表,不过这种方式仅在需要自定义处理时使用,日常场景优先用内置函数更合适。
内容的提问来源于stack exchange,提问作者MemeFast King
相关产品推荐
相关产品推荐

