Equatable
实现方法
func ==(lhs: Self, rhs: Self) -> Bool
两个参数必须是自身类型(Self),可比较自身及多态形式。
class User: Equatable {
let id: Int
init(_ id: Int) {
self.id = id
}
}
func == (lhs: User, rhs: User) -> Bool {
return (lhs.id == rhs.id)
}
class ZhangSan: User {
let name: String
init(id: Int,name: String) {
self.name = name
super.init(id)
}
}
let zhangSan = ZhangSan(id: 1, name: "张三")
let person = zhangSan as User
zhangSan == person //true
let zhangSanCopy = ZhangSan(id: 1, name: "克隆张三")
zhangSan != zhangSanCopy //false