【发布时间】:2015-12-19 20:50:58
【问题描述】:
我刚刚开始学习 Elixir,但我无法弄清楚 Elixir 中的 import 是如何工作的。
当我使用 import 将一个模块导入另一个模块时,我无法使用导入它的模块来调用导入的函数。
但是我可以在导入模块的函数内部调用导入模块的函数。
defmodule A do
def func do
IO.puts("func called")
end
end
defmodule B do
import A
end
A.func # o/p: "func called"
B.func # (UndefinedFunctionError) undefined function: B.func/0
defmodule B do
import A
def func2 do
func
end
end
B.func2 # o/p "func called"
当我能够从func2 调用func 时,我无法弄清楚为什么B.func 不起作用。是否有某种我缺少的理论。来自 Ruby 背景的这种行为对我来说看起来很奇怪。请任何人帮助我或指出一些好的资源来阅读。
【问题讨论】: