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)
有谁知道这个功能在哪里记录。
谢谢。
| 归档时间: |
|
| 查看次数: |
1535 次 |
| 最近记录: |