如何在Swift中增加Int-typed成员变量

时间:2014-11-28 18:38:57

标签: ios swift

我正在编写Swift应用程序并且无法递增Int类型成员变量。

我用

创建了变量
let index:Int

然后在初始化程序中我使用

实例化它
self.index = 0

稍后,当我尝试使用

中的任何一个在函数中递增它时
self.index++

self.index = self.index + 1

在第一种情况下,我被告知“不能使用'Int'类型的参数调用'++',而在第二种情况下,”不能在'self'中分配'pos'。“

我无法找到关于++运算符的信息,除了你可以编写它的自定义版本,但我认为它至少内置于整数类型。如果那不是真的那么就回答了这个问题。

另一个我不知道的问题。

谢谢!

2 个答案:

答案 0 :(得分:37)

class MyClass {

    let index : Int

    init() {
        index = 0
    }

    func foo() {
        index++ // Not allowed 
    }
}

index常量存储的属性。它可以给出一个初始值

let index : Int = 0

并且只能在初始化期间修改 (当初始化完成时,它必须有一个确定的值。)

如果要在初始化后更改值 那么你必须将它声明为变量存储属性:

var index : Int

Swift文档中"Properties"的更多信息。

请注意,++--在Swift 2.2中已弃用并已删除 在Swift 3中(如评论中所述),所以 - 如果声明为变量 - 你用

增加它
index += 1

代替。

答案 1 :(得分:2)

我认为你可以改变

let index:Int

var index:Int = 0

由于您要增加index的值,更改其值,您需要将其声明为var。此外,值得知道let用于声明常量。

然后,您可以使用self.index++。请注意,self.index++之间没有空格。

希望这会有所帮助。