當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


erlang merge(Fun, Orddict1, Orddict2)用法及代碼示例


merge(Fun, Orddict1, Orddict2) -> Orddict3
類型:
Fun = fun((Key, Value1, Value2) -> Value)
Orddict1 = orddict(Key, Value1)
Orddict2 = orddict(Key, Value2)
Orddict3 = orddict(Key, Value)

合並兩個字典 Orddict1Orddict2 來創建一個新字典。兩個詞典中的所有 Key - Value 對都包含在新詞典中。如果某個鍵同時出現在兩個字典中,則使用該鍵和兩個值調用 Fun 以返回新值。 merge/3 可以定義如下,但速度更快:

merge(Fun, D1, D2) ->
    fold(fun (K, V1, D) ->
                 update(K, fun (V2) -> Fun(K, V1, V2) end, V1, D)
         end, D2, D1).

例子:

1> OrdDict1 = orddict:from_list([{a, 1}, {b, 2}]).
[{a,1},{b,2}]
2> OrdDict2 = orddict:from_list([{b, 7}, {c, 8}]).
[{b,7},{c,8}]
3> orddict:merge(fun (K, V1, V2) -> V1 * V2 end, OrdDict1, OrdDict2).
[{a, 1},{b, 14},{c,8}]

相關用法


注:本文由純淨天空篩選整理自erlang.org大神的英文原創作品 merge(Fun, Orddict1, Orddict2) -> Orddict3。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。