什么是swift3中'++'和' - '的替换?

时间:2016-08-10 08:55:11

标签: swift swift3

由于表达式'++'和' - '将在Swift 3中删除,因此以下代码无效。

 return i < 0 ? nil : i-- 

现在我只是像这样重写它

if i < 0 {
   return nil
}
let res = i
i -= 1
return res

但它看起来太麻烦了。

如何在Swift 3中尽可能短地重写此代码?

2 个答案:

答案 0 :(得分:1)

这个问题是Chris Lattner在this proposal

中采用的方法
  

Swift中的增量/减量运算符很早就被添加了   Swift的发展,作为C的结转。这些都被添加了   没有多少考虑,自那以后就没有多想过了   然后。本文档最后对它们进行了全新的介绍   建议我们完全删除它们,因为它们令人困惑   没有承受重量。

最重要的是,您不应再使用这些内联变异操作符。

在您的示例中我不明白为什么在退出范围之前更改i的值。

如果我缺少理由,请考虑不内联或使用不同

答案 1 :(得分:0)

你仍然可以使用三元运算符:

return i < 0 ? nil : i - 1