【发布时间】:2016-08-29 23:26:28
【问题描述】:
所以我有一个自定义的类相等运算符,如果它们都是 nil,我想返回 true,但是当我询问 left 或 right == 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
}
【问题讨论】:
-
顺便说一句,你为什么不这样做:
return left?.uniquID == right?.uniquID?如果两者都是 nil,这将返回 true。 -
使用 nil 检查构建到另一个类中,聪明。那个deff有效。但是,如果我不能这样做,我将如何在不调用我自己的操作员的情况下进行零检查
-
您使用的是哪个版本的 Swift?
-
Xcode 7.2 so swift 2.2 但是我不建议使用 swift 3.0 中引入的东西
-
@CWineland:我只是想重现你的场景
标签: ios swift oop null operator-overloading