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

Hid*_*shi 7 elixir

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

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

a.ex

defmodule A do
  def a do
    IO.puts "A.a"
  end
end
Run Code Online (Sandbox Code Playgroud)

b.ex

defmodule B do
  require A

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

B.b
Run Code Online (Sandbox Code Playgroud)

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

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

The*_*Fox 4

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

然后在你的项目目录中运行 Iex 像这样

iex -S mix
Run Code Online (Sandbox Code Playgroud)

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

然后你就可以做B.b

你会看到:

B.b
A.a
:ok
Run Code Online (Sandbox Code Playgroud)

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