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
我只是想了解 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