Elixir:如何在脚本中使用flush()函数?

时间:2017-02-20 18:49:53

标签: elixir

文档提供了iex中的用法示例 - 它可以在那里工作: http://elixir-lang.org/getting-started/processes.html#send-and-receive

虽然它在脚本内部不起作用:

$ elixir e.exs
** (CompileError) e.exs:6: undefined function flush/0
    (elixir) lib/code.ex:363: Code.require_file/2

我发现这个函数是某些IEx.Helpers的一部分 https://hexdocs.pm/iex/master/IEx.Helpers.html

但在脚本开头添加use IEx.Helpersuse IEx并不会生效。

1 个答案:

答案 0 :(得分:2)

您不想使用use关键字。您将要么aliasimport

它们都是相关的,但略有不同。

  • import Foo.Bar - 将导入Foo.Bar模块中定义的所有功能,允许您拨打function()
  • alias Foo.Bar - 还将导入模块Foo.Bar中定义的所有函数。不同之处在于,现在您需要使用Bar.function()而不仅仅是function()
  • use Foo.Bar - 将调用名为Foo.Bar的{​​{1}}模块中的宏。

您可以详细了解这些字词的区别以及更多here