在 swift 中,包含三种类型(type): structure , enumeration , class。其中structure和enumeration是值类型( value type ),class是引用类型( reference type )。虽然结构体和枚举可以定义自己的方法,但是默认情况下,实例方法中是不可以修改值类型的属性。为了能够在实例方法中修改属性值,可以在方法定义前添加关键字 mutating。如下:
struct Point {
var x = 0, y = 0
mutating func moveXBy(x:Int,yBy y:Int) {
self.x += x
self.y += y
}}
var p = Point(x: 5, y: 5)
p.moveXBy(3, yBy: 3)