当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Julia isequal用法及代码示例


用法一

isequal(x, y)

类似于 == ,除了处理浮点数和缺失值。 isequal 将所有浮点 NaN 值视为彼此相等,将 -0.0 视为不等于 0.0 ,并将 missing 视为等于 missing 。始终返回 Bool 值。

isequal 是等价关系 - 它是自反的(=== 暗示 isequal)、对称(isequal(a, b) 暗示 isequal(b, a))和传递(isequal(a, b)isequal(b, c) 暗示 isequal(a, c))。

执行

isequal 的默认实现调用 == ,所以不涉及浮点值的类型一般只需要定义 ==

isequal 是哈希表(Dict)使用的比较函数。 isequal(x,y) 必须暗示 hash(x) == hash(y)

这通常意味着存在自定义==isequal 方法的类型必须实现相应的 hash 方法(反之亦然)。集合通常通过在所有内容上递归调用 isequal 来实现 isequal

此外,isequal isless 链接在一起,它们共同定义一个固定的总排序,其中 isequal(x, y)isless(x, y)isless(y, x) 中的一个必须是 true (另外两个 false)。

标量类型通常不需要实现与 == 分开的 isequal ,除非它们表示的浮点数可以比作为通用后备提供的更有效的实现(基于 isnansignbit==)。

例子

julia> isequal([1., NaN], [1., NaN])
true

julia> [1., NaN] == [1., NaN]
false

julia> 0.0 == -0.0
true

julia> isequal(0.0, -0.0)
false

julia> missing == missing
missing

julia> isequal(missing, missing)
true

用法二

isequal(x)

创建一个使用 isequal 将其参数与 x 进行比较的函数,即等效于 y -> isequal(y, x) 的函数。

返回的函数是 Base.Fix2{typeof(isequal)} 类型,可用于实现专门的方法。

相关用法


注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 Base.isequal — Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。