class Student : Equatable {
static func == (lhs: Student, rhs: Student) -> Bool {
lhs.age == rhs.age
}
var age:Int
init(age:Int) {
self.age = age
}
}
var p1 = Student(age:10)
var p2 = Student(age:10)
print(p1==p2) // true
var p1 = Student(age:10)
var p2 = Student(age:20)
print(p1 ==p2) // false
我们遵守了一个协议,并且我们定义了规则,在该协议中我们使用年龄比较,如果年龄相同,则是认为是等价
其实该写法,也是可以写成重载运算符,可以不加Equatable这个协议
拓展
func equals<T : Equatable>(_ t1:T,_ t2:T) -> Bool {
t1 == t2 // 判断是否相同
}
截屏2022-03-02 下午6.22.01.png
网友评论