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


Elixir Agent.cast用法及代碼示例


Elixir語言中 Agent.cast 相關用法介紹如下。

用法一

cast(agent, fun)
@spec cast(agent(), (state() -> state())) :: :ok

對代理狀態執行強製轉換 (fire and forget) 操作。

函數fun 被發送到調用傳遞代理狀態的函數的agentfun 的返回值成為代理的新狀態。

請注意,cast 立即返回:ok,無論agent(或它應該存在的節點)是否存在。

例子

iex> {:ok, pid} = Agent.start_link(fn -> 42 end)
iex> Agent.cast(pid, fn state -> state + 1 end)
:ok
iex> Agent.get(pid, fn state -> state end)
43

用法二

cast(agent, module, fun, args)
@spec cast(agent(), module(), atom(), [term()]) :: :ok

對代理狀態執行強製轉換 (fire and forget) 操作。

cast/2 相同,但需要一個模塊、函數和參數,而不是匿名函數。狀態作為第一個參數添加到給定的參數列表中。

例子

iex> {:ok, pid} = Agent.start_link(fn -> 42 end)
iex> Agent.cast(pid, Kernel, :+, [12])
:ok
iex> Agent.get(pid, fn state -> state end)
54

相關用法


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