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