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値を 2 回出力するのはなぜですか? タプルをすぐに表示する1行目の送信メッセージに関連していますか?

4

1 に答える 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
于 2015-11-02T18:05:58.700 に答える