【问题标题】:Is there a type subtraction operation in Julia?Julia 中有类型减法运算吗?
【发布时间】:2018-08-31 15:10:48
【问题描述】:

在 Julia 中,我们有 typeintersect(Missing, Union{Missing, Float64})(返回 Missing)。 是否有可能得到剩余的东西(即Union{Missing, Float64} - Missing返回Float64)?

我确实尝试过 typesubtract(Missing, Union{Missing, Float64})typecomplement(Union{Missing, Float64}, Missing) 但显然它们不存在 ;-)

【问题讨论】:

    标签: julia


    【解决方案1】:

    对于Missing,它实际上在 Base(但未导出)中实现为 nonmissingtype 函数。这里有相关代码:

    nonmissingtype(::Type{Union{T, Missing}}) where {T} = T
    nonmissingtype(::Type{Missing}) = Union{}
    nonmissingtype(::Type{T}) where {T} = T
    nonmissingtype(::Type{Any}) = Any
    

    因此,这应该可以解决您使用Missing 的问题(只是import 这个来自Base 的函数),并且您有一个模板如何在其他场景中实现类似的事情。如果它回答了你想要的,请告诉我。

    【讨论】:

    • 只是补充一点,nonmissingtype 现在已在最近的 Julia 版本中导出。在旧版本中,Missings.jl 包将其导出。
    猜你喜欢
    • 2017-02-08
    • 1970-01-01
    • 1970-01-01
    • 2018-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-20
    • 2011-07-27
    相关资源
    最近更新 更多