Swift

[Swift] 구조체란 무엇인가?

devharrry 2020. 1. 3. 21:39

구조체란?

프로퍼티 값을 저장하거나 메소드를 제공하고 이것들을 캡슐화하여 표현하는 타입입니다. 

구조체는 인스턴스가 값(Value) 타입입니다. 즉, 메모리가 공유되는 것이 아니라 인스턴스가 복사되는 것을 의미합니다.  (원본을 변경해도 복사본에는 영향을 끼치지 않음)

 

특징

- 참조카운트가 없어서 메모리 관리에 안전하다. 

- 레퍼런스 타입이 아니여서 데이터 공유가 불가능하다. 

- Immutable 구현에 안전하다. 

- 상속이 불가능하다. 

- 클래스 보다 인스턴스 생성이 빠르다. 

 

언제 쓰는 것이 좋은가?

- 데이터를 참조하는 것 보다 복사하는 것이 합당할 때


- 데이터 공유가 필요 없는 경우 


- 작고 간단한 데이터 

- Immutable 구현이 필요한 경우 

 

- 상속받거나 자신을 상속할 필요가 없을 경우