所以我有一个类的相等的自定义运算符,如果它们都是空的,我想返回true,但是当我问==是左还是右时,我的运算符就会被调用。有没有其他或更好的方法来做到这一点?
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
}发布于 2016-08-30 07:47:10
下面是使您的类成为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) // truehttps://stackoverflow.com/questions/39216644
复制相似问题