只是想了解 Julia 并遇到了类型成员应该属于特定类型的需求,或者也可以是nothing
。因此,我尝试了以下方法:
using NIfTI # Julia package for reading NIfTI medical images
type RR
source::Union(NIfTI.NIVolume, nothing)
end
但是,当我尝试初始化此对象时,我得到:
错误: 加载错误: 加载错误: 方法错误: 无方法匹配 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