我很担心Julia中的abstract
类型是否可以有成员变量(比如C ++中的虚拟类)。我相信文档会提到它,但我找不到它!
我尝试过类似的事情:
abstract AbstractR
source
end
现在我有一个具体的实现:
type RR <: AbstractR
end
function loadSource(reg::RR, x::AbstractString)
println("Hello")
end
但是,当我尝试加载模块时,我有:
错误:LoadError:LoadError:LoadError:UndefVarError:source not 定义
那么抽象类型只是一个类型名称而没有别的吗?此外,为什么语言设计者决定不支持成员变量(如果确实如此)。此外,我还没有真正看到有abstract
类型的意思......
修改
模块文件
module TestProj
export AbstractR
export RR
include("generic.jl")
include("rr.jl")
end
generic.jl
abstract AbstractR
source
end
rr.jl
type RR <: AbstractR
end
function loadSource(reg::RR, x::AbstractString)
println("Hello")
end
答案 0 :(得分:6)
至少我理解它的方式是抽象类型旨在用作“节点”,因此它们本身不可实例化(sp?)。因此,它们允许您将具体类型组织到层次结构中。为方法分配任何一组具体类型提供了一种简便的方法。
我认为文档解释了这个here。
(有了这个错误,msg也应该有意义吗?)
答案 1 :(得分:0)
您正在加载模块吗? 也许你必须先输入东西。 你可以发布整个代码吗?