1

只是试图让我的头脑围绕 Julia 并遇到类型成员应该是特定类型或者它也可以是nothing. 所以,我尝试了以下方法:

using NIfTI  # Julia package for reading NIfTI medical images

type RR
    source::Union(NIfTI.NIVolume, nothing)
end

但是,当我尝试初始化此对象时,我得到:

错误:LoadError:LoadError:MethodError:没有方法匹配 Union(::Type{NIfTI.NIVolume}, ::Void)

我想这样做的原因是没有很好的默认方法来初始化NIVolume对象,在需要之前让它保持未初始化似乎是个好主意。

4

1 回答 1

3

Julia 的类型系统还可以表达表达式不能产生任何值的概念——例如,如果它抛出错误或者是不能执行的基本块的一部分(死代码)。永远不会产生值的表达式的类型是空联合类型,Union{}:零类型的联合,其中没有值是实例。这与 nothing 的类型不同——因为 nothing 是正常(但无趣)的值,所以它不能是 Union{} 的实例。

http://docs.julialang.org/en/release-0.4/manual/faq/#nothingness-and-missing-values

于 2017-03-31T13:45:59.233 回答