使用增量运算符会产生构建错误 "swift Unary operator '++' cannot be applied to an operand of type 'Int'"

Use of increment operator gives build error "swift Unary operator '++' cannot be applied to an operand of type 'Int'"

Basic Operators 部分,Swift 编程语言指南指出 ++ 是有效的运算符:

“More complex examples include the logical AND operator && (as in if enteredDoorCode && passedRetinaScan) and the increment operator ++i, which is a shortcut to increase the value of i by 1.”

摘自:苹果公司“Swift 编程语言。”电子书。 https://itun.es/gb/jEUH0.l

但是,在游乐场尝试此操作时;

import UIKit

let i = 0
i++

构建错误显示:

swift 一元运算符“++”不能应用于 'Int'

类型的操作数

为什么?

是的,不是最好的编译器错误。

问题是您使用 let 声明了 i。由于整数是值类型,这意味着 i 是不可变的——一旦赋值就无法更改。

如果您将 i 声明为 var i = 0,代码将编译。

您已将 i 定义为不可变 let。请尝试 var i = 0

此外,如果您要在其中一种方法中更改值类型(结构或枚举)变量的值,则必须将该方法定义为变异:

mutating func modify() {
   ++i
}