如何使用Elixir语言将模块加载到另一个模块中?

时间:2015-12-06 03:01:57

标签: elixir

我很难使用Elixir语言将模块加载到另一个模块中。

例如,我有2个文件如下所示:

a.ex

defmodule A do
  def a do
    IO.puts "A.a"
  end
end

b.ex

defmodule B do
  require A

  def b do
    IO.puts "B.b"
    A.a
  end
end

B.b

我试图执行b.ex.然后我得到如下错误:

$elixir b.ex
** (CompileError) b.ex:2: module A is not loaded and could not be found

1 个答案:

答案 0 :(得分:4)

在您的文件b.ex中删除最后一行的B.b

然后在你的项目目录中运行Iex就好了

iex -S mix

这将加载iex并正确加载模块

然后你可以B.b

你会看到:

B.b
A.a
:ok

另外,请确保您的a.exb.ex文件位于elixir项目的lib/目录中