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

Zig*_*ong 21 ios swift swift2 swift3

更新到之后Xcode 7.3,我的项目中会显示大量警告.

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

有什么想法修复这个警告吗?是什么原因++以及--将来会被弃用?

Zig*_*ong 46

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

在查看Swift的演变之后,有一些原因可以删除这些运算符:

  1. 这些运算符增加了将Swift作为第一种编程语言学习的负担 - 或者您不熟悉其他语言的这些运算符的任何其他情况.

  2. 它们的表现优势很小 - x ++并不比x + = 1短.

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

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

  5. 实际使用这些运算符的结果值的代码通常会让代码的读者/维护者感到困惑和微妙.他们鼓励"过于棘手"的代码,这些代码可能很可爱,但很难理解.

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

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

最后,这些失败的指标"如果我们还没有这些,我们会将它们添加到Swift 3吗?"

有关更多信息,请查看Swift evolution.

  • 如果`x + = 1代表x ++`; 怎么样`++ x`? (10认同)
  • 我想看看数字1,5,6的来源或证明 (6认同)
  • 愚蠢的主意。Swift充满了各种全新的语法糖,但是它们消除了经典的...废话 (2认同)