1
私はElixirの初心者です。私はGenServerの使い方を理解しようとしています。私にとって魔法とは何ですか: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のドキュメントから抜粋したものです。 call
関数は、コールバック関数が{:reply, h, t}
を返したときに1つの値を返すのはなぜですか?
#Start the server
{:ok, pid} = GenServer.start_link(Stack, [:hello])
# This is the client
GenServer.call(pid, :pop)
#=> :hello #<<<<Why?
{:reply, h, t}
は戻り値ではありませんか?