【问题标题】:Static member type or nothing in JuliaJulia中的静态成员类型或没有
【发布时间】:2017-03-31 13:30:32
【问题描述】:

我只是想了解 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 对象,在需要时让它保持未初始化似乎是个好主意。

【问题讨论】:

  • 在 julia 中有一个 Nullable 类型。
  • 顺便说一句,似乎NIfTI.jl 提供a default way 来初始化NIVolume
  • these linesoptional or keyword arguments,因此您可以通过NIVolume()NIVolume(rand(3,3,3), descrip="my nii obj") 简单地初始化一个nii 对象(第一个可选参数是原始数据;descrip 是关键字参数。)
  • @Gnimuc 对。有你!对不起,我很愚蠢,有点困惑!
  • 如果您有任何问题,请随时提问;)

标签: julia nifti


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 2013-05-07
    相关资源
    最近更新 更多