有没有什么办法可以设置一个协议,如果我们定义一个结构,它的所有属性都符合Equatable
,那么它会自动变为Equatable
无需编写所有样板代码来比较类中的每个属性。理想情况下,该协议也继承自Equatable
.
例如,如果调用了这样的协议RecursiveEquatable
并且我定义了一个结构
struct A: RecursiveEquatable {
let value: Int
}
那么我不需要编写样板代码
public func ==(lhs: A, rhs: A) -> Bool {
return lhs.value == rhs.value
}