【问题标题】:'++' is deprecated: it will be removed in Swift 3 [duplicate]'++' 已弃用:它将在 Swift 3 中删除 [重复]
【发布时间】:2016-07-10 10:39:57
【问题描述】:

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

'++' 已弃用:将在 Swift 3

中删除

有解决此警告的想法吗? ++-- 将来会被弃用的任何原因?

【问题讨论】:

  • 绝对是重复的...虽然这个问题是关于 beta(日期为 2 月 3 日),而这个问题是关于 正式版本(日期为 3 月 23 日,Xcode 7.3 上市几天后)...在这种情况下该怎么办?
  • @NicolasMiari 只需投票关闭它。还是Xcode 7.3,我们只能编辑问题去掉“beta”。

标签: ios swift swift2 swift3


【解决方案1】:

从 Swift 2.2 开始,您应该改用 += 1-= 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 evolution 了解更多信息。

【讨论】:

  • 如果x + = 1 represent x++ ;如果++x 怎么办?
  • 我想查看数字 1,5,6 的来源或证明
  • 愚蠢的想法。 Swift 充满了各种全新的语法糖,但它们删除了经典......废话
猜你喜欢
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 2016-07-09
  • 1970-01-01
  • 2016-07-24
  • 1970-01-01
  • 2016-11-30
相关资源
最近更新 更多