dict:find/2
在字典里查找值
用法:
find(Key, Dict) -> {ok, Value} | error
内部实现:
-spec find(Key, Dict) -> {'ok', Value} | 'error' when Key :: term(), Dict :: dict(), Value :: term(). find(Key, D) -> Slot = get_slot(D, Key), Bkt = get_bucket(D, Slot), find_val(Key, Bkt). find_val(K, [?kv(K,Val)|_]) -> {ok,Val}; find_val(K, [_|Bkt]) -> find_val(K, Bkt); find_val(_, []) -> error.
跟 dict:fetch/2 一样,都是查找返回一个在字典 Dict 里跟键 Key 相关联的值,不过返回的格式不一样
D = dict:from_list([{k1, v1}, {k2, v2}, {k3, v3}]), dict:find(k1, D).
而且字典里没有相关联的键值存在不会抛异常错误,只返回一个原子 error
D = dict:from_list([{k1, v1}, {k2, v2}, {k3, v3}]), dict:find(k4, D).