當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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 獲取值並更新它,一次完成。

fun 參數接收 key 的值(或 nil 如果 key 不存在)並且必須返回一個二元組:當前值(檢索到的值,可以在返回之前對其進行操作) ) 以及要存儲在 key 下的新值。 fun 也可能返回 :pop ,這意味著當前值應從關鍵字列表中刪除並返回。

返回一個元組,其中包含 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)
{nil, [b: "new value!", a: 1]}

iex> Keyword.get_and_update([a: 2], :a, fn number ->
...>   {2 * number, 3 * number}
...> end)
{4, [a: 6]}

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

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

相關用法


注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 Keyword.get_and_update(keywords, key, fun)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。