所以我有一个自定义运算符用于类的相等,如果它们都是nil我想返回true但是当我问左边或右边== nil时我的操作符被调用。还有其他更好的方法吗?
public func == (left: classXYZ?, right: classXYZ?) -> Bool {
if left == nil && right == nil {
return true
}
if left != nil && right != nil {
return left!.uniquID == right!.uniquID
}
return false
}
答案 0 :(得分:3)
以下是制作课程Equatable
class ClassXYZ: Equatable {
let uniqueID: String
init(uniqueID: String) {
self.uniqueID = uniqueID
}
}
func ==(left: ClassXYZ, right: ClassXYZ) -> Bool {
return left.uniqueID == right.uniqueID
}
您不需要(也不能)明确指定nil == nil
是true
,它已经内置到Swift中,看看
let a: ClassXYZ? = nil
let b: ClassXYZ? = nil
print(a == b) // true