代码之家  ›  专栏  ›  技术社区  ›  Antonello

朱莉娅有类型减法运算吗?

  •  0
  • Antonello  · 技术社区  · 7 年前

    在茱莉亚我们有 typeintersect(Missing, Union{Missing, Float64}) (返回) Missing ). 有没有可能取而代之的是什么。 Union{Missing, Float64} - Missing 返回 Float64

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

    1 回复  |  直到 7 年前
        1
  •  2
  •   Bogumił Kamiński    7 年前

    为了 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
    

    所以这应该可以解决你的问题 失踪 (刚刚 import 此函数来自 Base )你有一个模板,可以在其他场景中实现类似的事情。如果它能满足你的要求,请告诉我。

    推荐文章