【发布时间】:2015-12-18 00:30:09
【问题描述】:
在Programming Elixir 书的第 221 页上,指出如果我们想将 call 中的多个值传递给 GenServer,我们应该使用元组:
def handle_call({:set_number, new_number}, _from, _current_number) do
{ :reply, new_number, new_number }
end
iex> GenServer.call(pid, {:set_number, 999})
在我看来,关键字列表更适合这种情况:
def handle_call([ set_number: new_number ], _from, _current_number) do
{ :reply, new_number, new_number + 1 }
end
iex(2)> GenServer.call pid, set_number: 999
这样我可以完全避免大括号,并且我使用关键字列表似乎是为了他们的目的:传递选项/参数。
这种方法有什么问题吗?还是我违反了一些最佳实践?
【问题讨论】:
标签: functional-programming elixir