Smart Device/Swift

Swift mutating

언덕너머에 2015. 6. 9. 09:55
- mutating 

기본적으로 값 타입의 경우는 인스턴스가 생성되고 나서, 인스턴스 매서드에서 해당 인스턴스의

속성을  변경 할 수 없도록 되어 있다. 그러나 값 타입의 경우라고 하더라도 인스턴스 매서드를

사용하여 구조체와 열거형의 속성을 변경할 필요가 있는 경우가 발생한다. 이 경우에 mutating이라는

키워드를 사용하면 된다. 

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