22

更新到 后Xcode 7.3,我的项目中显示了一堆警告。

'++' 已弃用:它将在Swift 3中删除

任何想法来解决这个警告?未来将弃用++and的任何原因?--

4

1 回答 1

46

从 Swift 2.2 开始,你应该使用+= 1or-= 1代替。

并且在查阅了 Swift 的演变之后,移除这些操作符有一些原因:

  1. 这些运算符增加了学习 Swift 作为第一门编程语言的负担——或者任何其他你还不知道这些运算符来自不同语言的情况。

  2. 它们的表达优势很小——x++ 并不比 x += 1 短很多。

  3. Swift 已经偏离了 C,因为 =、+= 和其他类似赋值的操作返回 Void(出于多种原因)。这些运算符与该模型不一致。

  4. Swift 具有强大的功能,可以消除您在其他语言的 C 风格 for 循环中使用 ++i 的许多常见原因,因此这些在编写良好的 Swift 代码中相对较少使用。这些功能包括 for-in 循环、范围、枚举、映射等。

  5. 实际使用这些运算符的结果值的代码对于代码的读者/维护者来说通常是令人困惑和微妙的。他们鼓励“过于棘手”的代码,这些代码可能很可爱,但很难理解。

  6. 虽然 Swift 有明确定义的评估顺序,但任何依赖于它的代码(如 foo(++a, a++))即使定义明确也是不可取的。

  7. 这些运算符适用于相对较少的类型:整数和浮点标量,以及类似迭代器的概念。它们不适用于复数、矩阵等。

最后,这些都没有达到“如果我们还没有这些,我们会将它们添加到 Swift 3 中吗?”的标准。

请查看Swift 进化以获取更多信息。

于 2016-03-23T08:29:15.900 回答