struct
-
mutatingSwift 2019. 11. 19. 10:18
구조체를 정의할 때 메서드가 구조체 내부의 데이터를 수정할 때는 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에서 // 자신..
-
Class vs Struct in SwiftSwift 2019. 10. 21. 17:01
공통점 properties와 methods를 정의할 수 있다. subscript를 정의할 수 있다. (subscript syntax를 사용할 수 있다.) init 함수를 통해 초기화 할 수 있다. extension을 사용할 수 있다. protocol로 적합하다. 차이점 class는 다른 class를 상속받을 수 있다. class는 deinitialized 할 수 있다. class는 reference type이고 struct는 value type이다. 특히 마지막 차이점이 중요한데, 이 차이가 우리가 둘 중 무엇을 사용할 지 결정적이기 때문이다. class와 struct의 가장 큰 차이는 struct는 value type, class는 reference type이라는 것이다. value type은 복사할 ..