当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Elixir Map.merge用法及代码示例


Elixir语言中 Map.merge 相关用法介绍如下。

用法一

merge(map1, map2)
@spec merge(map(), map()) :: map()

将两张Map合并为一张。

map2 中的所有键都将添加到 map1 中,覆盖任何现有的键(即 map2 "have precedence" 中的键超过 map1 中的键)。

如果您有一个结构并且您想将一组键合并到结构中,请不要使用此函数,因为它会将右侧的所有键合并到结构中,即使该键不是结构的一部分。相反,请使用 Kernel.struct/2

由编译器内联。

例子

iex> Map.merge(%{a: 1, b: 2}, %{a: 3, d: 4})
%{a: 3, b: 2, d: 4}

用法二

merge(map1, map2, fun)
@spec merge(map(), map(), (key(), value(), value() -> value())) :: map()

将两个映射合并为一个,通过给定的 fun 解决冲突。

map2 中的所有键都将添加到 map1 中。当有重复键时,将调用给定的函数;它的参数是key(重复键)、value1(map1key的值)和value2(map2key的值)。 fun 返回的值用作结果映射中key 下的值。

例子

iex> Map.merge(%{a: 1, b: 2}, %{a: 3, d: 4}, fn _k, v1, v2 ->
...>   v1 + v2
...> end)
%{a: 4, b: 2, d: 4}

相关用法


注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Map.merge(map1, map2)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。