gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 20:42:43 26 4
gpt4 key购买 nike

我很困惑 Julia 中的 abstract 类型是否可以有成员变量(就像 C++ 中的虚拟类)。我确定文档中提到了它,但我找不到它!

我试过类似的方法:

abstract AbstractR
source
end

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

type RR <: AbstractR
end

function loadSource(reg::RR, x::AbstractString)
println("Hello")
end

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

ERROR: LoadError: LoadError: LoadError: UndefVarError: source not defined

那么抽象类型是否只是一个类型名称而没有别的?另外,为什么语言设计者决定不支持成员变量(如果确实如此)。另外,我真的不明白有一个 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

最佳答案

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

我认为文档解释了这个 here .

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

关于julia - Julia 中的抽象类型和成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43129234/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com