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


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)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。