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