小编Kha*_*r K的帖子

通过扩展自动合成 Swift 结构或枚举的 Equatable 一致性

Swift 文档表示,Equatable只有在结构体或枚举的原始定义中声明了一致性,而不是通过扩展声明一致性时,一致性的自动合成才可用于结构体和具有关联值的枚举,在这种情况下,运算符的实现==必须是假如。

文档链接

但是,以下代码可以工作。

struct Point {
    var x: Double
    var y: Double
}

extension Point: Equatable {}

print(Point(x: 10, y: 10) == Point(x: 5, y: 5))   // prints false
Run Code Online (Sandbox Code Playgroud)

这也是如此。

enum Outcome {
    case success
    case failure(reason: String)
}

extension Outcome: Equatable {}

print(Outcome.failure(reason: "Chance") == Outcome.failure(reason: "Chance"))   // prints true
Run Code Online (Sandbox Code Playgroud)

有谁知道这个功能在哪里记录。

谢谢。

swift equatable

5
推荐指数
1
解决办法
1535
查看次数

标签 统计

equatable ×1

swift ×1