需要澄清价值类型方法

时间:2015-07-22 01:38:12

标签: ios xcode swift value-type

为什么不能在其实例方法中修改值类型的属性?

我已经阅读过Apple的Swift文档,但没有提供有关WHY的准确解释。是的我知道传递值时会复制值类型,但这与无法修改实例属性的方法有什么关系。但是,可以从结构外部修改这些属性。

另外,我在这里发现了一个或两个与此类似的帖子。不幸的是,这些答案仍然含糊不清。

1 个答案:

答案 0 :(得分:2)

如果要修改结构的实例,必须在函数定义前使用mutating关键字。

struct Point {
var x = 0.0, y = 0.0
mutating func moveByX(deltaX: Double, y deltaY: Double) {
    x += deltaX
    y += deltaY
}

}