구조체란?
프로퍼티 값을 저장하거나 메소드를 제공하고 이것들을 캡슐화하여 표현하는 타입입니다.
구조체는 인스턴스가 값(Value) 타입입니다. 즉, 메모리가 공유되는 것이 아니라 인스턴스가 복사되는 것을 의미합니다. (원본을 변경해도 복사본에는 영향을 끼치지 않음)
특징
- 참조카운트가 없어서 메모리 관리에 안전하다.
- 레퍼런스 타입이 아니여서 데이터 공유가 불가능하다.
- Immutable 구현에 안전하다.
- 상속이 불가능하다.
- 클래스 보다 인스턴스 생성이 빠르다.
언제 쓰는 것이 좋은가?
- 데이터를 참조하는 것 보다 복사하는 것이 합당할 때
- 데이터 공유가 필요 없는 경우
- 작고 간단한 데이터
- Immutable 구현이 필요한 경우
- 상속받거나 자신을 상속할 필요가 없을 경우
'Swift' 카테고리의 다른 글
[Swift] SwiftLint 적용하기 (0) | 2020.01.05 |
---|---|
[Swift] Extension(확장)으로 코드 가독성 올리기 (0) | 2020.01.05 |
[Swift] 델리게이트(Delegate) 패턴이란 (0) | 2020.01.03 |
[Swift] 타입메소드, 인스턴스 메소드란 (0) | 2020.01.03 |
[Swift] 노티피케이션 센터와 노티피케이션 (0) | 2018.09.16 |