我刚开始使用Julia并定义了一个模块如下:
MyModule.jl
module MyModule
export ConcreteClass
end
然后我有一个文件定义了一些简单的抽象类:
generics.jl
abstract MyAbstract
在此之后我尝试继承这个类:
concrete.jl
type ConcreteClass <: MyAbstract
end
当然,这是微不足道的,但我只是希望能够实例化一个简单的例子。我将项目源的路径添加到LOAD_PATH
变量,并在我的julia控制台中运行以下内容:
using MyModule # No error
r = ConcreteClass()
第二行失败:ERROR: UndefVarError: ConcreteClass not defined
。当我输入自动填充的第二行时,Julia控制台中的内容会建议ConcreteClass
,因此识别出类型但不确定not defined
错误的原因。
答案 0 :(得分:2)
我想我明白了。我遗漏了一些似乎有必要的include
陈述。
<强> MyModule.jl 强>
module MyModule
export ConcreteClass
include("concrete.jl")
end
<强> concrete.jl 强>
include("generics.jl")
type ConcreteClass <: MyAbstract
end
添加以下行后:
r = ConcreteClass() # works fine