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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。