Swift中等同性判断需要遵循Hashable协议,其中只有一个 hashValue: Int {get}需要实现,而Hashable协议又继承自Equatable协议,其中只有一个==运算符,那么需要做的就是覆写hashValue的get方法和重写==运算符的运算方式。代码如下:
func ==(lhs: Testhash, rhs: Testhash) -> Bool {
return lhs.hashValue == rhs.hashValue
}
class Testhash: Hashable {
var hashValue: Int {
get {
return 4
}
}
}
需要注意运算符重写只能在文件的scope下,不能写到class内。