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

Luc*_*uca 2 julia

我很困惑abstractJulia中的类型是否可以有成员变量(比如C++中的虚拟类).我相信文档提到它但我找不到它!

我尝试过类似的东西:

abstract AbstractR
  source
end
Run Code Online (Sandbox Code Playgroud)

现在我有一个具体的实现:

type RR <: AbstractR
end

function loadSource(reg::RR, x::AbstractString)
  println("Hello")
end
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试加载模块时,我有:

错误:LoadError:LoadError:LoadError:UndefVarError:未定义源

那么抽象类型只是一个类型名称而没有别的吗?此外,为什么语言设计者决定不支持成员变量(如果确实如此).此外,我还没有真正看到有abstract类型的意义......

编辑

模块文件

module TestProj
export AbstractR
export RR
include("generic.jl")
include("rr.jl")
end
Run Code Online (Sandbox Code Playgroud)

generic.jl

abstract AbstractR
  source
end
Run Code Online (Sandbox Code Playgroud)

rr.jl

type RR <: AbstractR
end

function loadSource(reg::RR, x::AbstractString)
  println("Hello")
end
Run Code Online (Sandbox Code Playgroud)

Ale*_*ley 6

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

我认为文档在这里解释了这一点.

(有了这个错误消息也应该有意义吗?)

  • @ MichaelK.Borregaard你不讨厌:-)感谢这些链接.我现在真的开始喜欢朱莉娅了.花费整个周末编码,更好地了解它背后的哲学.有些我同意,有些我不同意.但总的来说,这是一次积极的体验.我还设法将我的一些python代码移植到了开箱即可获得相当不错的加速.我想我将把我所有的科学计算工作都交给朱莉娅.看看情况如何. (2认同)