Elixir递归和接收
示例
递归可用于接收多条消息
defmodule Processes do
def receiver do
receive do
{:ok, val} ->
IO.puts"Received Value: #{val}"
_ ->
IO.puts"Received something else"
end
receiver
end
endiex(1)> pid = spawn Processes, :receiver, []
#PID<0.95.0>
iex(2)> send pid, {:ok, 10}
Received Value: 10
{:ok, 10}
iex(3)> send pid, {:ok, 42}
{:ok, 42}
Received Value: 42
iex(4)> send pid, :random
:random
Received something elseElixir将使用尾部调用递归优化,只要函数调用是函数中最后发生的事情(如示例中所示)。
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西