我仍然是 Elixir 的绝对新手:
我偶然发现了文档中的以下示例或
Port
对象:
port = Port.open({:spawn, "cat"}, [:binary])
send(port, {self(), {:command, "hello"}})
send(port, {self(), {:command, "world"}})
flush()
flush()
如何知道它应该冲洗什么?如果有一个port.flush()
,我会觉得更容易理解。
我尝试在 Elixir 文档中搜索 flush
函数的文档,但我只找到了
StringIO.flush
。似乎也没有
Kernel.flush
;至少它没有在https://hexdocs.pm/elixir/1.14.5/Kernel.html 中列出。 如果有任何关于该函数定义位置的指针,我将不胜感激。此外,任何有关如何更好地搜索 Elixir 在线文档的建议,我们将不胜感激。
flush/0 是 IEx 的一个实用函数,位于 IEx.Helpers
。您不需要从
iex
会话中指定模块名称,因为它将自动导入。它完全按照文档中的说明进行操作:
清除发送到 shell 收件箱的所有消息并将其打印出来。说到查找文档,这个比较特殊,所以很难找到,不然以后应该是零问题。
defmodule A do
def add() do
1 + 2 + 3
end
def go() do
result = add() # How does add() know what to add??
IO.puts(result)
end
end
A.go() #6