在我的项目中,在转换为swift 3之后,我的ViewController课程出现了一个新功能:
fileprivate func < <T : Comparable>(lhs: T?, rhs: T?) -> Bool {
switch (lhs, rhs) {
case let (l?, r?):
return l < r
case (nil, _?):
return true
default:
return false
}
}
Run Code Online (Sandbox Code Playgroud)
这个功能有什么作用?我为什么需要它?
Mar*_*n R 45
这太有趣了.例如,在最新的Swift 3之前,您可以比较可选值
let a: Int? = nil
let b: Int? = 4
print(a < b) // true
Run Code Online (Sandbox Code Playgroud)
而nil被认为比所有非可选值少.
此功能已被删除(SE-0121 - 删除可选比较运算符),上述代码无法在Xcode 8 beta 6中编译
error: value of optional type 'Int?' not unwrapped; did you mean to use '!' or '?'?
显然,斯威夫特迁移提供了一个自定义的解决了这个问题你<操作它有两个可选的操作数,因此"恢复"旧的行为.
如果删除该定义,则应该在代码中看到比较的位置.然后尝试更新代码并删除可选的比较.
| 归档时间: |
|
| 查看次数: |
3124 次 |
| 最近记录: |