无法使用int类型的参数调用++

时间:2015-07-28 09:28:36

标签: swift

有人可以告诉我,我在这里失败了吗?

我有一个名为Struct的{​​{1}},其中我预先定义了一个名为cardView的选项,并将其定义为currentIndex

当我从Integer内的函数尝试添加到struct时,我会收到编译错误。

以下是它的外观:

currentIndex

struct cardView { var currentIndex: Int = 0 func addToIndex() { currentIndex++ } } 结构和函数是从我的cardView初始化的。

2 个答案:

答案 0 :(得分:4)

您可以从该结构的外部更改结构变量,但不能从其自己的函数中更改结构变量,您需要在有趣之前添加变体关键字。

struct cardView {
var currentIndex: Int = 0
    mutating func addToIndex() {
        currentIndex++
    }
}

答案 1 :(得分:1)

该方法正在更改内部状态,因此必须将其声明为mutating

mutating func addToIndex() {
^^^^^^^^

请注意,这仅适用于值类型 - 类不需要它,正如您只需将结构转换为类即可看到。