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


Elixir Keyword.merge用法及代码示例


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

用法一

merge(keywords1, keywords2)
@spec merge(t(), t()) :: t()

将两个关键字列表合并为一个。

keywords2 中给定的所有键(包括重复键)添加到 keywords1 ,覆盖任何现有键。

不保证返回关键字中键的顺序。

例子

iex> Keyword.merge([a: 1, b: 2], [a: 3, d: 4])
[b: 2, a: 3, d: 4]

iex> Keyword.merge([a: 1, b: 2], [a: 3, d: 4, a: 5])
[b: 2, a: 3, d: 4, a: 5]

iex> Keyword.merge([a: 1], [2, 3])
** (ArgumentError) expected a keyword list as the second argument, got: [2, 3]

用法二

merge(keywords1, keywords2, fun)
@spec merge(t(), t(), (key(), value(), value() -> value())) :: t()

将两个关键字列表合并为一个。

keywords2 中给出的所有键(包括重复键)添加到 keywords1 。调用给定的函数来解决冲突。

如果 keywords2 有重复的键,它会为 keywords1 中的每个匹配对调用给定的函数。

不保证返回关键字中键的顺序。

例子

iex> Keyword.merge([a: 1, b: 2], [a: 3, d: 4], fn _k, v1, v2 ->
...>   v1 + v2
...> end)
[b: 2, a: 4, d: 4]

iex> Keyword.merge([a: 1, b: 2], [a: 3, d: 4, a: 5], fn :a, v1, v2 ->
...>   v1 + v2
...> end)
[b: 2, a: 4, d: 4, a: 5]

iex> Keyword.merge([a: 1, b: 2, a: 3], [a: 3, d: 4, a: 5], fn :a, v1, v2 ->
...>   v1 + v2
...> end)
[b: 2, a: 4, d: 4, a: 8]

iex> Keyword.merge([a: 1, b: 2], [:a, :b], fn :a, v1, v2 ->
...>   v1 + v2
...> end)
** (ArgumentError) expected a keyword list as the second argument, got: [:a, :b]

相关用法


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