1,"kota"=> 3} 与 #{"kota"=> 4} 应该导致: #{"Ala"=> 1,-6ren">
gpt4 book ai didi

Erlang - 合并 map

转载 作者:行者123 更新时间:2023-12-01 16:05:00 25 4
gpt4 key购买 nike

我正在尝试弄清楚如何以允许我处理具有相同键的元素的方式合并两个 map

例如合并

#{"Ala"=> 1,"kota"=> 3}

#{"kota"=> 4}

应该导致:

#{"Ala"=> 1,"kota"=> 7}

最佳答案

Erlang 中没有内置函数可以完全做到这一点,但可以使用 maps:fold/3maps:update_with/4 来完成,如下所示:

1> A = #{"Ala" => 1,"kota" => 3}.
#{"Ala" => 1,"kota" => 3}
2> B = #{"kota" => 4}.
#{"kota" => 4}
3> maps:fold(fun(K, V, Map) -> maps:update_with(K, fun(X) -> X + V end, V, Map) end, A, B).
#{"Ala" => 1,"kota" => 7}

代码基本上是这样做的:对于 B 中的每个项目,如果 A 中存在相同的键,它会获取值 (V) 并添加当前值 (X)。如果不存在,则将值设置为 V

关于Erlang - 合并 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46714921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com