Julia 中的静态成员类型或什么都没有

Static member type or nothing in Julia

我只是想了解 Julia 并发现类型成员应该是特定类型或者也可以是 nothing 的需求。所以,我尝试了以下方法:

using NIfTI  # Julia package for reading NIfTI medical images

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

然而,当我尝试初始化这个对象时,我得到:

ERROR: LoadError: LoadError: MethodError: no method matching Union(::Type{NIfTI.NIVolume}, ::Void)

我想这样做的原因是没有好的默认方法来初始化 NIVolume 对象,在需要时将其未初始化似乎是个好主意。

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

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