我正在研究以下教程
https://howistart.org/posts/elixir/1
我正在与代理商合作,我不明白这条线是如何运作的。
def pop(door) do
Agent.get_and_update(door, fn
[] -> {:error, []}
[h|t] -> {{:ok, h}, t} ## returns {:ok, h} why not {{:ok, h}, t}
end )
end
输出
iex(5)> Portal.Door.push(:pink, 2)
:ok
iex(6)> Portal.Door.push(:pink, 3)
:ok
iex(7)> Portal.Door.push(:pink, 4)
:ok
iex(8)> Portal.Door.pop(:pink)
{:ok, 4}
具有不同结果的简单函数
person = fn ( first, last ) -> {{:ok, first}, last} end
输出:
iex(13)> person.("John", "Doe")
{{:ok, "John"}, "Doe"}
为什么一个返回内部元组和外部元组,代理只返回内部元组。
提前致谢!