Elixir語言中 Agent.get_and_update 相關用法介紹如下。
用法:
get_and_update(agent, fun, timeout \\ 5000)
@spec get_and_update(agent(), (state() -> {a, state()}), timeout()) :: a when a: var
通過給定的匿名函數在一個操作中獲取和更新代理狀態。
函數fun 被發送到調用傳遞代理狀態的函數的agent。該函數必須返回一個包含兩個元素的元組,第一個是要返回的值(即 "get" 值),第二個是代理的新狀態。
timeout 是一個大於零的整數,它指定在代理執行函數並返回結果值之前允許多少毫秒,或者原子:infinity 無限期等待。如果在指定時間內沒有收到結果,則函數調用失敗,調用者退出。
例子
iex> {:ok, pid} = Agent.start_link(fn -> 42 end)
iex> Agent.get_and_update(pid, fn state -> {state, state + 1} end)
42
iex> Agent.get(pid, fn state -> state end)
43
相關用法
- Elixir Agent.get用法及代碼示例
 - Elixir Agent.cast用法及代碼示例
 - Elixir Agent.start_link用法及代碼示例
 - Elixir Agent.update用法及代碼示例
 - Elixir Agent.stop用法及代碼示例
 - Elixir Agent.start用法及代碼示例
 - Elixir Agent用法及代碼示例
 - Elixir Application.get_env用法及代碼示例
 - Elixir Application用法及代碼示例
 - Elixir Access.filter用法及代碼示例
 - Elixir Access.all用法及代碼示例
 - Elixir Atom用法及代碼示例
 - Elixir Atom.to_string用法及代碼示例
 - Elixir Access.key用法及代碼示例
 - Elixir Access.get用法及代碼示例
 - Elixir Access.key!用法及代碼示例
 - Elixir Atom.to_charlist用法及代碼示例
 - Elixir Access.fetch用法及代碼示例
 - Elixir Access.at!用法及代碼示例
 - Elixir Access.at用法及代碼示例
 - Elixir Access用法及代碼示例
 - Elixir Access.fetch!用法及代碼示例
 - Elixir Application.ensure_started用法及代碼示例
 - Elixir Access.elem用法及代碼示例
 - Elixir Access.pop用法及代碼示例
 
注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 Agent.get_and_update(agent, fun, timeout \\ 5000)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
