자신의 프로퍼티 값을 수정할 때는 클래스의 인스턴스 메서드는 문제 없으나
구조체나 열거형 등은 값 타입이므로 메서드 앞에 mutating 키워드를 붙여서 해당 메서드가 인스턴스 내부의 값을 변경함을 명시해야함.
struct point {
var x = 0.0, y = 0.0
// mutating 키워드 없을시 오류발생
mutating func moveBy(x deltaX: Double, y deltaY: Double) {
x += deltaX
y += deltaY
}
}
var somePoint = point(x: 1.0, y: 1.0)
somePoint.moveBy(x: 2.0, y: 3.0)
print(" x ..... \(somePoint.x) y .......... \(somePoint.y)")
'swift > 잡다함' 카테고리의 다른 글
| extension, protocol, Higher_Order_Func (0) | 2021.06.16 |
|---|---|
| 기본 클로저 사용 (0) | 2021.06.07 |
| ARC (weak, unowned) (0) | 2021.06.01 |
| lazy (0) | 2021.02.17 |
| 구조체, 클래스 차이 (0) | 2021.02.17 |