2016-04-29 58 views
1

我無法理解如何使用Erlang進程接收多條消息。下面是我在shell嘗試:在Erlang進程中接收多條消息

1> GetMessage = spawn(fun() -> getMessage() end). 
<0.252.0> 
2> GetMessage ! msg. 
Got a message 
msg 
3> GetMessage ! msg 
msg 

代碼getMessage/0

getMessage() -> 
    receive 
    _ -> 
     io:format("Got a message~n", []) 
end. 

我怎樣才能保持接收消息?

回答

2

啊,我明白了:

getMessage() -> 
    receive 
    _ -> 
     io:format("Got a message~n", []) 
     getMessage() % Add this line! 
end. 

您需要收到消息後再次調用該函數。