merge_with(Combiner, Map1, Map2) -> Map3
OTP 24.0
类型:
Map1 = #{Key1 => Value1}
Map2 = #{Key2 => Value2}
Combiner = fun((Key1, Value1, Value2) -> CombineResult)
Map3 = #{Key1 => CombineResult, Key1 => Value1, Key2 => Value2}
将两个映射合并为一个映射 Map3 。如果两个映射中都存在某个键,则 Map1 中的值将通过 Combiner fun 与 Map2 中的值组合。当应用 Combiner 时,两个映射中都存在的键是第一个参数,Map1 中的值是第二个参数,Map2 中的值是第三个参数。
如果 Map1 或 Map2 不是映射,则调用失败并出现 {badmap,Map} 异常。如果 Combiner 不是带有三个参数的 fun,则调用失败并出现 badarg 异常。
例子:
> Map1 = #{a => "value_one", b => "value_two"},
Map2 = #{a => 1, c => 2},
maps:merge_with(fun(_Key, Value1, Value2) -> {Value1, Value2} end, Map1, Map2).
#{a => {"value_one",1},b => "value_two",c => 2}
相关用法
- erlang merge用法及代码示例
- erlang merge(Fun, Orddict1, Orddict2)用法及代码示例
- erlang merge(Map1, Map2)用法及代码示例
- erlang merge(Fun, Dict1, Dict2)用法及代码示例
- 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_with(Combiner, Map1, Map2) -> Map3。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
