flush()
输出收到的消息。向您学习一些Erlang book显示flush()
的以下代码。
flush() ->
receive
_ -> flush()
after 0 ->
ok
end.
但它怎么可能输出一些东西,比如它似乎对它收到的消息没有任何作用。
8> flush().
Shell got {<0.51.0>,ok}
Shell got {<0.51.0>,{ok,bacon}}
Shell got {<0.51.0>,not_found}
ok
答案 0 :(得分:1)
flush()是一个与flush()示例无关的VM命令,其目的是说明after 0
的一种用法(当然两个代码都清空了消息队列)。我想VM中的flush代码如下:
flush() ->
receive
M ->
io:format("Shell got ~p~n",[M]),
flush()
after 0 ->
ok
end.