Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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 为什么我看到两个结果?_Elixir_Elixir Iex - Fatal编程技术网

Elixir 为什么我看到两个结果?

Elixir 为什么我看到两个结果?,elixir,elixir-iex,Elixir,Elixir Iex,我正在看Sasa Juric的《长生不老药》,我发现了一些我觉得有点困惑的东西。我正在浏览他在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 recei

我正在看Sasa Juric的《长生不老药》,我发现了一些我觉得有点困惑的东西。我正在浏览他在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行立即显示元组的发送消息有关吗?

这就是iex的工作原理:

iex(10)> IO.inspect(3)
3 # From IO.inspect
3 # return value in iex
这是因为IO.inspect打印值并返回相同的值。打印值并返回
:ok

iex(11)> IO.puts(3)  
3    # From IO.puts
:ok  # return value in iex
这就是iex的工作原理:

iex(10)> IO.inspect(3)
3 # From IO.inspect
3 # return value in iex
这是因为IO.inspect打印值并返回相同的值。打印值并返回
:ok

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