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

时间:2018-08-31 15:10:48

标签: julia

在Julia中,我们有typeintersect(Missing, Union{Missing, Float64})(返回Missing)。

是否可以获取剩余的内容(即Union{Missing, Float64} - Missing返回Float64)?

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

1 个答案:

答案 0 :(得分:2)

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

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

因此,这可能应该可以解决Missing(只是import的{​​{1}}这个问题)问题,并且您有一个模板,可以知道如何在其他情况下实现类似的功能。请让我知道它是否满足您的要求。