【问题标题】:Elixir: how to use flush() function in script?Elixir:如何在脚本中使用 flush() 函数?
【发布时间】:2017-02-21 03:04:21
【问题描述】:

文档给出了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 不会生效。

【问题讨论】:

  • 如果我正确理解您的问题,您也可以简单地运行$ iex e.exs

标签: elixir


【解决方案1】:

您不想使用use 关键字。你会想要aliasimport

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

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

你可以阅读更多关于这些词的区别和更多here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    相关资源
    最近更新 更多