首页 > 解决方案 > 为什么 Comparable 协议没有 Equatable 的默认实现?

问题描述

为什么 swift 没有像这样的 Equatable for Comparable 协议的内置实现?

extension Comparable {
    static func == (lhs: Self, rhs: Self) -> Bool {
        return !(lhs < rhs) && !(rhs < lhs)
    }
}

标签: swift

解决方案


我在评论中找到了答案谢谢大家:

假设a<b是 false 并且b<a是 false then ,对于像根据文档a==b这样的特殊情况是不正确的:Float.nan

NaN 比较不等于、不大于和不小于每个值,包括它自己。将 NaN 传递给操作通常会导致 NaN。


推荐阅读