2015-11-02 59 views
1

我正在通過Sasa Juric的「Elixir In Action」工作,我發現了一些讓我感到有點困惑的東西。我是通過他給140頁左右,周圍的例子工作,我看到這個:爲什麼我會看到兩個結果?

iex(2)> send(self, {:message, 1}) # Line 1 
{:message, 1} 
iex(3)> receive_result = receive do 
...(3)> {:message, x} -> x + 2 
...(3)> end 
3 
iex(4)> IO.inspect receive_result 
3 
3 

爲什麼IO.inspect打印值的兩倍?它是否與立即顯示元組的第1行發送消息相關?

回答

4

這是多麼IO.inspect/2作品IEX:

iex(10)> IO.inspect(3) 
3 # From IO.inspect 
3 # return value in iex 

出現這種情況,因爲IO.inspect打印值,並返回相同的值。 IO.puts/2打印該值並返回:ok

iex(11)> IO.puts(3) 
3 # From IO.puts 
:ok # return value in iex 
相關問題