为什么不能在其实例方法中修改值类型的属性?
我已经阅读过Apple的Swift文档,但没有提供有关WHY的准确解释。是的我知道传递值时会复制值类型,但这与无法修改实例属性的方法有什么关系。但是,可以从结构外部修改这些属性。
另外,我在这里发现了一个或两个与此类似的帖子。不幸的是,这些答案仍然含糊不清。
答案 0 :(得分:2)
如果要修改结构的实例,必须在函数定义前使用mutating关键字。
struct Point {
var x = 0.0, y = 0.0
mutating func moveByX(deltaX: Double, y deltaY: Double) {
x += deltaX
y += deltaY
}
}