자신의 프로퍼티 값을 수정할 때는 클래스의 인스턴스 메서드는 문제 없으나

구조체나 열거형 등은 값 타입이므로 메서드 앞에 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

+ Recent posts