Swift - Equatable

作者: aven_kang | 来源:发表于2022-03-26 22:25 被阅读0次
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

相关文章

网友评论

    本文标题:Swift - Equatable

    本文链接:https://www.haomeiwen.com/subject/btlerrtx.html