如何导入同一文件中的模块?

问题描述 投票:0回答:1

这是我的代码文件“test.exs”的内容:

defmodule Test do
  def f(:a, x) do x + 1 end
  def f(:b, x) do x - 1 end
end

import Test
IO.puts f :a, 3
IO.puts f :b, 3

通过

elixir test.exs
在 shell 中运行此文件失败。我认为问题出在
import Test
。那么导入在同一文件中定义的模块的正确方法是什么?

elixir
1个回答
0
投票

我不相信这是可能的:

import
是编译时的便利——它基本上是在编译时进行复制/粘贴,所以据我所知它需要编译源模块。 如果您尝试从定义该模块的同一文件内导入该模块,则该模块尚未编译,因此无法导入。 当我尝试这样做时看到的错误是:

error: module Test is not loaded but was defined. This happens when you depend on a module in the same context in which it is defined.

这似乎表明由于上述原因这是不可能的。

© www.soinside.com 2019 - 2024. All rights reserved.