【发布时间】:2016-08-27 05:28:59
【问题描述】:
我是 Elixir 的初学者,我正在尝试了解如何使用 GenServer。对我来说神奇的是:
defmodule Stack do
use GenServer
# Callbacks
def handle_call(:pop, _from, [h|t]) do
{:reply, h, t}
end
def handle_cast({:push, item}, state) do
{:noreply, [item|state]}
end
end
代码取自 GenServer 文档。为什么当回调函数返回{:reply, h, t}时,call函数只返回一个值?
#Start the server
{:ok, pid} = GenServer.start_link(Stack, [:hello])
# This is the client
GenServer.call(pid, :pop)
#=> :hello #<<<<Why?
{:reply, h, t}不是返回值吗?
【问题讨论】:
标签: elixir gen-server