Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Julia中有类型减法运算吗?_Julia - Fatal编程技术网

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而言,它实

在Julia中,我们有
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包将其导出。