iOS/Swift 상식

Mutating

HJ39 2023. 3. 4. 22:48

Mutating은 한 번 지정되면 변경할 수 없는 value-type(struct, enum)에서 값을 수정할 수 있는 키워드이다.

 

예시를 통해 알아보면 바로 알 수 있다.

struct Point{
    var x = 0
    var y = 0
    mutating func upPoint(x: Int, y:Int){
        self.x += x
        self.y += y
    }
}

var point = Point(x: 1, y: 2)
print("x: \(point.x), y: \(point.y)")	//x: 1, y: 2

point.upPoint(x: 2, y: 3)
print("change x: \(point.x), y: \(point.y)")	//change x: 3, y: 5

 

Mutating 키워드가 붙은 메서드는 종료될 때 모든 변경된 내용들을 원래 struct에 기록한다.

메서드 내부에서 자기 자신의 인스턴스를 새로 할당 수 있다.

 

 

# 참고한 사이트

  1. https://velog.io/@hayeon/mutating-%ED%82% A4% EC% 9B% 8C% EB%93% 9C% EC%97%90-%EB% 8C%80% ED%95% B4-%EC%84% A4% EB% AA%85% ED%95%98% EC% 8B% 9C% EC%98% A4
  2. https://jintaewoo.tistory.com/26