不推荐使用++,它将在swift 3中删除

Slo*_*nio 13 ios swift

++将在swift 3中弃用

变量++现在可以写成

variable += 1
Run Code Online (Sandbox Code Playgroud)

我该怎么改写++variable.

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

mat*_*att 33

将其重写为:

variable += 1
Run Code Online (Sandbox Code Playgroud)

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


所以举个例子

let otherVariable = ++variable // variable is a previously defined var
Run Code Online (Sandbox Code Playgroud)

现在变成了

variable += 1 // variable is _still_ a previously defined var
let otherVariable = variable
Run Code Online (Sandbox Code Playgroud)

但另一方面

let otherVariable = variable++ // variable is a previously defined var
Run Code Online (Sandbox Code Playgroud)

现在变成了

let otherVariable = variable
variable += 1 // variable is _still_ a previously defined var
Run Code Online (Sandbox Code Playgroud)

额外的专家:在极少数情况下你return variable++- 也就是说,你返回variable,在更高的范围,然后增加它 - 你可以解决这样的问题:

defer {
    variable += 1
}
return variable
Run Code Online (Sandbox Code Playgroud)

  • @ sage444同样的方式.它就像平原一样简单明了.问题是'++`不是; 这就是它被废除的原因.大多数人甚至不了解preincrement和postincrement之间的区别.所以现在你只是增加 - 在这样做的时候才有意义. (6认同)
  • @vadian,我认为这是马特的观点."返回索引++"的行为很微妙,很可能在天真的开发人员身上丢失.为了清楚起见,微妙是坏的. (2认同)
  • @OmarBizreh https://github.com/apple/swift-evolution/blob/master/proposals/0004-remove-pre-post-inc-decrement.md (2认同)