merge(Fun, Orddict1, Orddict2) -> Orddict3
类型:
Fun = fun((Key, Value1, Value2) -> Value)
Orddict1 = orddict(Key, Value1)
Orddict2 = orddict(Key, Value2)
Orddict3 = orddict(Key, Value)
合并两个字典 Orddict1
和 Orddict2
来创建一个新字典。两个词典中的所有 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 merge(Fun, Dict1, Dict2)用法及代码示例
- erlang merge(Map1, Map2)用法及代码示例
- erlang merge用法及代码示例
- erlang merge_with(Combiner, Map1, Map2)用法及代码示例
- erlang member用法及代码示例
- erlang memory用法及代码示例
- erlang memory()用法及代码示例
- erlang max用法及代码示例
- erlang min用法及代码示例
- erlang make_dir用法及代码示例
- erlang match(Table, Pattern)用法及代码示例
- erlang match_spec_run(List, CompiledMatchSpec)用法及代码示例
- erlang make_tuple(Arity, InitialValue)用法及代码示例
- erlang make_tuple(Arity, DefaultValue, InitList)用法及代码示例
- erlang map_get(Key, Map)用法及代码示例
- erlang map_size(Map)用法及代码示例
- erlang max(Term1, Term2)用法及代码示例
- erlang min(Term1, Term2)用法及代码示例
- erlang monitor(Type :: process, Item :: monitor_process_identifier())用法及代码示例
- erlang monitor(Type :: process, Item :: monitor_process_identifier(), Opts :: [monitor_option()])用法及代码示例
- erlang map(Fun, Orddict1)用法及代码示例
- erlang module(AbsForms)用法及代码示例
- erlang monitor(Socket)用法及代码示例
- erlang map(Fun, MapOrIter)用法及代码示例
- erlang match(Subject, Pattern, Options)用法及代码示例
注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 merge(Fun, Orddict1, Orddict2) -> Orddict3。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。