我很难用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)
在文件中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.ex和b.ex文件位于lib/您的 Elixir 项目的目录中