如何从Erlang orddic中提取所有值?自定义函数实现方法
自定义Orddict取值列表函数
Erlang的orddict模块确实没有提供直接获取所有值列表的现成函数,但orddict本质是有序的键值对列表,每个元素都是{Key, Value}格式的元组,我们可以直接基于列表操作实现需求。
实现方式1:列表推导式
fetch_values(Orddict) -> [Value || {_Key, Value} <- Orddict].
遍历Orddict中的每个键值元组,忽略键(用_Key标识无需使用的变量),提取所有值组成新列表返回。
实现方式2:使用lists:map
values2list(Orddict) -> lists:map(fun({_Key, Value}) -> Value end, Orddict).
通过lists:map对每个键值元组应用匿名函数,仅返回元组中的值,最终生成值的列表。
两种实现效果完全一致,可根据编码习惯选择。
注:在较新版本的Erlang中,官方更推荐使用
maps模块替代orddict,maps提供了maps:values/1函数可直接获取所有值的列表。
内容的提问来源于stack exchange,提问作者anfamn
相关产品推荐
相关产品推荐

