当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。