Julia中的抽象类型和成员变量

时间:2017-03-30 22:10:32

标签: julia

我很担心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

2 个答案:

答案 0 :(得分:6)

至少我理解它的方式是抽象类型旨在用作“节点”,因此它们本身不可实例化(sp?)。因此,它们允许您将具体类型组织到层次结构中。为方法分配任何一组具体类型提供了一种简便的方法。

我认为文档解释了这个here

(有了这个错误,msg也应该有意义吗?)

答案 1 :(得分:0)

您正在加载模块吗? 也许你必须先输入东西。 你可以发布整个代码吗?