Julia中有类型减法运算吗?
在Julia中,我们有Julia中有类型减法运算吗?,julia,Julia,在Julia中,我们有typeintersect(Missing,Union{Missing,Float64})(返回Missing)。 是否可以取而代之地获得剩余的内容(即Union{Missing,Float64}-Missing返回Float64) 我确实尝试过typesubtract(Missing,Union{Missing,Float64})或typecomplete(Union{Missing,Float64},Missing),但显然它们不存在;-) 对于Missing而言,它实
typeintersect(Missing,Union{Missing,Float64})
(返回Missing
)。
是否可以取而代之地获得剩余的内容(即Union{Missing,Float64}-Missing
返回Float64
)
我确实尝试过
typesubtract(Missing,Union{Missing,Float64})
或typecomplete(Union{Missing,Float64},Missing)
,但显然它们不存在;-) 对于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
因此,这可能会解决您的
缺失
(只需从Base
导入此函数)问题,并且您有一个模板,可以在其他场景中实现类似的功能。请告诉我它是否满足您的要求。对于缺失
,它实际上是作为非缺失类型
函数在Base中实现的(但未导出)。这里有相关代码:
nonmissingtype(::Type{Union{T, Missing}}) where {T} = T
nonmissingtype(::Type{Missing}) = Union{}
nonmissingtype(::Type{T}) where {T} = T
nonmissingtype(::Type{Any}) = Any
因此,这可能会解决您的
缺失
(只需从Base
导入此函数)问题,并且您有一个模板,可以在其他场景中实现类似的功能。请让我知道它是否符合您的要求。只需补充一下,非缺失类型
现在已在最新版本中导出。在旧版本上,Missings.jl包会将其导出。只需添加一点,nonmissingtype
现在在最新版本中导出。在旧版本上,Missings.jl包将其导出。