2017-02-20 2 views
0

Dokumentation gibt Beispiel für die Verwendung in iex - und es funktioniert es: http://elixir-lang.org/getting-started/processes.html#send-and-receiveElixier: Wie funktioniert die Funktion flush() im Skript?

Auch wenn es nicht innerhalb von Skript funktioniert:

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

Ich fand, dass diese Funktion Teil einiger IEx.Helpers https://hexdocs.pm/iex/master/IEx.Helpers.html ist

Aber vorgehende use IEx.Helpers oder use IEx am Anfang des Skripts gibt keine Wirkung.

+1

Wenn ich Ihre Frage richtig verstehe, können Sie auch einfach '$ iex e.exs' ausführen –

Antwort

2

Sie möchten das Schlüsselwort use nicht verwenden. Sie werden entweder alias oder import wollen.

Sie sind alle verwandt, aber etwas anders.

  • import Foo.Bar - werden alle Funktionen im Foo.Bar Modul definiert importieren so dass Sie function()
  • alias Foo.Bar nennen - auch werden alle Funktionen im Modul Foo.Bar definiert importieren. Der Unterschied ist, dass Sie jetzt Bar.function() anstatt nur function() verwenden müssen.
  • use Foo.Bar - ruft ein Makro innerhalb des Foo.Bar Moduls namens __using__/1 auf.

Sie können mehr über den Unterschied dieser Wörter und mehr lesen here.

Verwandte Themen