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


Elixir Keyword.get_and_update!用法及代码示例


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

用法:

get_and_update!(keywords, key, fun)
@spec get_and_update!(
  t(),
  key(),
  (value() | nil -> {current_value, new_value :: value()} | :pop)
) ::
  {current_value, new_keywords :: t()}
when current_value: value()

获取 key 下的值并更新它。如果没有 key 则引发。

fun 参数接收 key 下的值,并且必须返回一个二元素元组:当前值(检索到的值,可以在返回之前对其进行操作)和要存储在 key 下的新值。

返回一个元组,其中包含 fun 返回的当前值和 key 下具有更新值的新关键字列表。

例子

iex> Keyword.get_and_update!([a: 1], :a, fn current_value ->
...>   {current_value, "new value!"}
...> end)
{1, [a: "new value!"]}

iex> Keyword.get_and_update!([a: 1], :b, fn current_value ->
...>   {current_value, "new value!"}
...> end)
** (KeyError) key :b not found in: [a: 1]

iex> Keyword.get_and_update!([a: 1], :a, fn _ ->
...>   :pop
...> end)
{1, []}

相关用法


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