Erlang中文手册(Erldoc.com)  »  dict  »  find/2
Erlang并发编程 Erlang/OTP设计原理 Erlang/OTP[pdf] Mnesia用户手册[pdf] Erlang完整手册[en] 官网手册[en] 模块列表 方法列表 随机 Erlang中文社区(BBS) 美女图库

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).
阿里云 - 最高1000元通用代金券立即可用
沪ICP备13037221号-9