1

有没有什么办法可以设置一个协议,如果我们定义一个结构,它的所有属性都符合Equatable,那么它会自动变为Equatable无需编写所有样板代码来比较类中的每个属性。理想情况下,该协议也继承自Equatable.

例如,如果调用了这样的协议RecursiveEquatable并且我定义了一个结构

struct A: RecursiveEquatable {
  let value: Int
}

那么我不需要编写样板代码

public func ==(lhs: A, rhs: A) -> Bool {
  return lhs.value == rhs.value
}
4

0 回答 0