快速和变异结构
对于Swift中的值类型突变,我有些不了解。 正如iBook的“ Swift编程语言”所言: 默认情况下,不能从其实例方法中修改值类型的属性。 因此,为了使之成为可能,我们可以mutating在structs和enums中使用关键字声明方法。 对我来说还不完全清楚的事情是:您可以从结构外部更改var,但是不能从其自己的方法更改它。这对我来说似乎违反直觉,因为在面向对象的语言中,您通常尝试封装变量,以便只能从内部进行更改。对于结构,这似乎是另一回事。详细来说,这是一个代码片段: struct Point { var x = 0, y = 0 mutating func moveToX(x: Int, andY y:Int) { //Needs to be a mutating method in order to work self.x = x self.y = y } } var p = Point(x: 1, y: 2) p.x = …