Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 为什么我的接收方法正在停止iex?_Elixir_Elixir Iex - Fatal编程技术网

Elixir 为什么我的接收方法正在停止iex?

Elixir 为什么我的接收方法正在停止iex?,elixir,elixir-iex,Elixir,Elixir Iex,我在我的iex终端上写了下面的代码,之后它不再响应了,终端只是停止了,就像它期待着其他东西一样。到底发生了什么 receive do {:hello, msg} -> msg {:world, msg} -> "won't match" end 默认情况下,receive没有超时,因此进程将被阻止,直到当前进程收到与任何模式匹配的消息。如果您只是在玩游戏,可以使用after设置超时,以确保不会发生这种情况: receive do {:he

我在我的iex终端上写了下面的代码,之后它不再响应了,终端只是停止了,就像它期待着其他东西一样。到底发生了什么

receive do 
    {:hello, msg} -> msg          
    {:world, msg} -> "won't match" 
end
默认情况下,receive没有超时,因此进程将被阻止,直到当前进程收到与任何模式匹配的消息。如果您只是在玩游戏,可以使用after设置超时,以确保不会发生这种情况:

receive do
  {:hello, msg} -> msg
  ...
after 5000 -> :timeout
end

如果在5000毫秒内没有收到与模式匹配的消息,表达式现在将返回:timeout。

真是不可思议!谢谢大家!+1.