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