Elixir语言中 Map.get_and_update
相关用法介绍如下。
用法:
get_and_update(map, key, fun)
@spec get_and_update(
map(),
key(),
(value() | nil -> {current_value, new_value :: value()} | :pop)
) ::
{current_value, new_map :: map()}
when current_value: value()
从 key
获取值并更新它,一次完成。
fun
使用 map
中 key
下的当前值调用(或 nil
如果 key
不存在于 map
中)并且必须返回一个二元素元组:当前值(检索到的值,可以在返回之前对其进行操作)以及要在生成的新映射中存储在key
下的新值。 fun
也可能返回 :pop
,这意味着当前值应从 map
中删除并返回(使此函数的行为类似于 Map.pop(map, key)
)。
返回的值是一个二元素元组,当前值由 fun
返回,而新映射的更新值位于 key
下。
例子
iex> Map.get_and_update(%{a: 1}, :a, fn current_value ->
...> {current_value, "new value!"}
...> end)
{1, %{a: "new value!"}}
iex> Map.get_and_update(%{a: 1}, :b, fn current_value ->
...> {current_value, "new value!"}
...> end)
{nil, %{a: 1, b: "new value!"}}
iex> Map.get_and_update(%{a: 1}, :a, fn _ -> :pop end)
{1, %{}}
iex> Map.get_and_update(%{a: 1}, :b, fn _ -> :pop end)
{nil, %{a: 1}}
相关用法
- Elixir Map.get_and_update!用法及代码示例
- Elixir Map.get_lazy用法及代码示例
- Elixir Map.get用法及代码示例
- Elixir Map.keys用法及代码示例
- Elixir Map.values用法及代码示例
- Elixir Map.update用法及代码示例
- Elixir Map.split用法及代码示例
- Elixir Map.put_new_lazy用法及代码示例
- Elixir Map.drop用法及代码示例
- Elixir Map.new用法及代码示例
- Elixir Map.take用法及代码示例
- Elixir Map.has_key?用法及代码示例
- Elixir Map.replace用法及代码示例
- Elixir Map.update!用法及代码示例
- Elixir Map.from_struct用法及代码示例
- Elixir Map.reject用法及代码示例
- Elixir Map.delete用法及代码示例
- Elixir Map.to_list用法及代码示例
- Elixir Map.equal?用法及代码示例
- Elixir Map.fetch!用法及代码示例
- Elixir Map.put用法及代码示例
- Elixir Map.pop_lazy用法及代码示例
- Elixir Map.merge用法及代码示例
- Elixir Map.filter用法及代码示例
- Elixir Map.fetch用法及代码示例
注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Map.get_and_update(map, key, fun)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。