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에 기록한다.
메서드 내부에서 자기 자신의 인스턴스를 새로 할당 수 있다.
# 참고한 사이트
- 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
- https://jintaewoo.tistory.com/26
'iOS > Swift 상식' 카테고리의 다른 글
Escaping 사용하기 (0) | 2023.03.05 |
---|---|
Escaping 개념 (0) | 2023.03.04 |
Hashable 및 Equatable을 상속 받아야 하는 이유 (0) | 2023.03.04 |
Equatable 이란? (0) | 2023.03.03 |
POP(Protocol Oriented Programming) vs OOP(Object Oriented Programming) (0) | 2023.02.21 |