dict:fetch/2
在字典里查找值
用法:
fetch(Key, Dict) -> Value
内部实现:
-spec fetch(Key, Dict) -> Value when Key :: term(), Dict :: dict(), Value :: term(). fetch(Key, D) -> Slot = get_slot(D, Key), Bkt = get_bucket(D, Slot), try fetch_val(Key, Bkt) catch badarg -> erlang:error(badarg, [Key, D]) end. fetch_val(K, [?kv(K,Val)|_]) -> Val; fetch_val(K, [_|Bkt]) -> fetch_val(K, Bkt); fetch_val(_, []) -> throw(badarg).
获取在字典 Dict 里跟键 Key 相关联的值
D = dict:from_list([{k1, v1}, {k2, v2}, {k3, v3}]), dict:fetch(k1, D).
如果键 Key 不存在字典 Dict 里,则会抛出一个异常错误,例如以下这种情况
D = dict:from_list([{1, a}, {2, b}, {3, c}]), case dict:fetch(4, D) of badarg -> not found; Value -> Value end.