在Erlang shell:
> orddict:fetch(b, [{d, 2}, {a, 1}, {b,5}, {c,9}]).
** exception error: no function clause matching
orddict:fetch(b,[{d,2},{a,1},{b,5},{c,9}])
Run Code Online (Sandbox Code Playgroud)
但
> orddict:fetch(b, [{a, 1}, {b,5}, {c,9}]).
5
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?
参考文献:orddict:fetch/2
orddict文档将orddict描述为orddict() = [{Key :: term(), Value :: term()}].
nmi*_*els 16
解决此问题的关键在于文档:
列表按键后排序.
使用orddict:from_list/1从常规的{key, value}对列表转换.
> orddict:fetch(b, orddict:from_list([{d, 2}, {a, 1}, {b,5}, {c,9}])).
5
Run Code Online (Sandbox Code Playgroud)