由于表达式'++'和' - '将在Swift 3中删除,因此以下代码无效。
return i < 0 ? nil : i--
现在我只是像这样重写它
if i < 0 {
return nil
}
let res = i
i -= 1
return res
但它看起来太麻烦了。
如何在Swift 3中尽可能短地重写此代码?
答案 0 :(得分:1)
这个问题是Chris Lattner在this proposal
中采用的方法Swift中的增量/减量运算符很早就被添加了 Swift的发展,作为C的结转。这些都被添加了 没有多少考虑,自那以后就没有多想过了 然后。本文档最后对它们进行了全新的介绍 建议我们完全删除它们,因为它们令人困惑 没有承受重量。
最重要的是,您不应再使用这些内联变异操作符。
在您的示例中我不明白为什么在退出范围之前更改i
的值。
如果我缺少理由,请考虑不内联或使用不同
答案 1 :(得分:0)
你仍然可以使用三元运算符:
return i < 0 ? nil : i - 1