-
728x90
구조체를 정의할 때
메서드가 구조체 내부의 데이터를 수정할 때는 mutating 키워드를 선언 해주어야 한다.
mutate란
사전적으로 변화시키다, 돌연변이
의 뜻을 갖는다.
뜻을 잘 생각하면 어떻게 쓰이는지 쉽게 이해할 수 있는데,
말 그대로 원래는 되지 않는 어떤 것을 되게 만드는, 돌연변이로 만드는 것이다.Swift에서 class 는 reference type 임에 반해 struct 와 enum 은 value type 이다.
value type 일 때 자신의 인스턴스 메서드 안에서는 property를 수정할 수 없다.
이때 수정이 필요하다면 mutating 키워드를 사용해야 한다.
struct Point { var x = 0.0, y = 0.0 // value type인 struct에서 // 자신의 property인 x와 y를 변화시키기 위해서는 // mutating을 붙여주어야 한다. mutating func moveBy(x deltaX: Double, y deltaY: Double) { x += deltaX y += deltaY } }
'Swift' 카테고리의 다른 글
ARC(Autometic Reference Counting) (0) 2020.02.03 escaping closure (0) 2020.01.30 inout (0) 2019.10.24 Variadic functions, 불특정 개수 파라미터 (0) 2019.10.24 Class vs Struct in Swift (0) 2019.10.21