有人可以告诉我,我在这里失败了吗?
我有一个名为Struct
的{{1}},其中我预先定义了一个名为cardView
的选项,并将其定义为currentIndex
。
当我从Integer
内的函数尝试添加到struct
时,我会收到编译错误。
以下是它的外观:
currentIndex
struct cardView {
var currentIndex: Int = 0
func addToIndex() {
currentIndex++
}
}
结构和函数是从我的cardView
初始化的。
答案 0 :(得分:4)
您可以从该结构的外部更改结构变量,但不能从其自己的函数中更改结构变量,您需要在有趣之前添加变体关键字。
struct cardView {
var currentIndex: Int = 0
mutating func addToIndex() {
currentIndex++
}
}
答案 1 :(得分:1)
该方法正在更改内部状态,因此必须将其声明为mutating
:
mutating func addToIndex() {
^^^^^^^^
请注意,这仅适用于值类型 - 类不需要它,正如您只需将结构转换为类即可看到。