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

时间:2015-03-26 14:22:42

标签: swift unary-operator

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

  

“更复杂的例子包括逻辑AND运算符&& (如果是   进入DoodeCode&& passRetinaScan)和增量运算符++ i ,   这是将i的值增加1 的快捷方式。“

摘自:Apple Inc.“The Swift Programming Language。”iBooks。 https://itun.es/gb/jEUH0.l

然而,在游乐场尝试时;

import UIKit

let i = 0
i++

构建错误显示:

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

为什么?

2 个答案:

答案 0 :(得分:13)

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

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

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

答案 1 :(得分:3)

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