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


erlang merge_with(Combiner, Map1, Map2)用法及代碼示例


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 中的值是第三個參數。

如果 Map1Map2 不是映射,則調用失敗並出現 {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.org大神的英文原創作品 merge_with(Combiner, Map1, Map2) -> Map3。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。