Swift 常见协议

1 Hashable 协议

class m1:Hashable{
    var name:String = ""
    var age:Int?
//    swift 4.1 版本被废弃了
    var hashValue:Int{
        get{
//            按照自己的规则生成
            return name.hashValue * age.hashValue
        }
    }
//    swift 4.2
    func hash(into hasher: inout Hasher) {
        hasher.combine(name)
        hasher.combine(age)
    }
    
    static func == (lhs: m1, rhs: m1) -> Bool {
        return lhs.name == rhs.name
    }
    
    
}

Hashable协议

你可能感兴趣的:(IOS开发)