使用递增运算符会产生构建错误"swift一元运算符'++'不能应用于'Int'类型的操作数"

Max*_*eod 10 unary-operator swift

Basic Operators一节中,Swift编程语言指南指出++是一个有效的运算符:

"更复杂的例子包括逻辑AND运算符&&(如在输入DoorCode &&传递瑞典扫描中)和增量运算符++ i, 这是一个将i的值增加1的快捷方式."

摘录自:Apple Inc."The Swift Programming Language."iBooks.https://itun.es/gb/jEUH0.l

但是,在游乐场尝试这个时;

import UIKit

let i = 0
i++
Run Code Online (Sandbox Code Playgroud)

构建错误显示:

swift一元运算符'++'不能应用于'Int'类型的操作数

为什么?

Air*_*ity 13

是的,不是措辞最好的编译器错误.

问题是你已声明i使用let.由于整数是值类型,因此这意味着i不可变 - 一旦赋值,就无法更改.

如果声明ivar i = 0代码编译.