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


Elixir Access.get_and_update用法及代码示例


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

用法:

get_and_update(container, key, fun)
@spec get_and_update(
  data,
  key(),
  (value() | nil -> {current_value, new_value :: value()} | :pop)
) ::
  {current_value, new_data :: data}
when data: container(), current_value: var

获取并更新 container 中的给定键(映射、关键字列表、实现 Access 行为的结构)。

fun 参数接收 key 的值(或 nil 如果 key 不存在于 container 中)并且必须返回一个二元素元组 {current_value, new_value} :"get" 值 current_value (检索到的值,可以在返回之前对其进行操作)和要存储在key(new_value)下的新值。 fun 也可能返回 :pop ,这意味着应该从容器中删除当前值并返回。

返回的值是一个二元素元组,其中 fun 返回的 "get" 值和 key 下具有更新值的新容器。

例子

iex> Access.get_and_update([a: 1], :a, fn current_value ->
...>   {current_value, current_value + 1}
...> end)
{1, [a: 2]}

相关用法


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