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

dict:erase/2

从字典里删除一个键

用法:

erase(Key, Dict1) -> Dict2

内部实现:

-spec erase(Key, Dict1) -> Dict2 when
      Key :: term(),
      Dict1 :: dict(),
      Dict2 :: dict().
%%  Erase all elements with key Key.

erase(Key, D0) -> 
    Slot = get_slot(D0, Key),
    {D1,Dc} = on_bucket(fun (B0) -> erase_key(Key, B0) end,
			D0, Slot),
    maybe_contract(D1, Dc).

erase_key(Key, [?kv(Key,_Val)|Bkt]) -> {Bkt,1};
erase_key(Key, [E|Bkt0]) ->
    {Bkt1,Dc} = erase_key(Key, Bkt0),
    {[E|Bkt1],Dc};
erase_key(_, []) -> {[],0}.

删除字典里跟键 Key 相关联的所有项

D = dict:from_list([{k1, v1}, {k2, v2}, {k3, v3}]),
dict:to_list(dict:erase(k1, D)).
阿里云 - 最高1000元通用代金券立即可用
沪ICP备13037221号-9