【问题标题】:++ is deprecated it will be removed in swift 3 [closed]++ 已弃用,它将在 swift 3 中删除 [关闭]
【发布时间】:2025-11-22 22:50:02
【问题描述】:

++ 将在 swift 3 中被弃用

变量++ 现在可以写成

variable += 1

如何重写++variable

请回忆++variablevariable++ 语法之间的区别

【问题讨论】:

  • 没有区别。不是你说什么,而是你说的时候。如果了解++variablevariable++之间的区别,这是显而易见的。如果没有,请阅读我现在修改的非常繁琐的答案。
  • 阅读此*.com/questions/17366847/…。也应该适用于 Swift。
  • @matt:我还是不明白。你为什么投票“关闭,因为不清楚你在问什么”? – 你在被问到问题 2 分钟后回答了这个问题,所以你一定很清楚。

标签: ios swift


【解决方案1】:

改写为:

variable += 1

...正如警告消息所暗示的那样。当然,这现在需要成为一个单独的行(这是此更改的唯一坏处)。重要的是你把那条线放在哪里。


例如

let otherVariable = ++variable // variable is a previously defined var

现在变成了

variable += 1 // variable is _still_ a previously defined var
let otherVariable = variable

但另一方面

let otherVariable = variable++ // variable is a previously defined var

现在变成了

let otherVariable = variable
variable += 1 // variable is _still_ a previously defined var

专家补充:在您return variable++ 的极少数情况下,即您返回variable,它的范围更大,然后然后递增它——你可以这样解决问题:

defer {
    variable += 1
}
return variable

【讨论】:

  • 我认为作者询问了 ++varvar++ 的不同语法。应该如何修复第一个变体?
  • @sage444 同样的方式。它是最简单的。问题是++ 不是;这就是它被废除的原因。大多数人甚至不了解前置增量和后置增量之间的区别。所以现在你只需增加——在有意义的时候这样做。
  • 当您使用后增量表达式作为返回值return index++ 时,它会变得有点复杂;)
  • @vadian,我认为这是马特的观点。 return index++ 的行为很微妙,很可能会被天真的开发人员所迷惑。为了清晰起见,微妙是不好的。
【解决方案2】:

你可以在上面一行写variable += 1。通过 before 递增来实现 preincrement。

【讨论】:

    最近更新 更多