struct와 class와 enum의 차이를 설명하시오.
iOS) Struct vs. Class vs. Enum
Class
- Swift에서는 객체라는 용어 대신 인스턴스 라는 용어를 사용함
- 단일 상속만 가능
- (인스턴스/타입) 메서드 or 프로퍼티
- 참조 타입
- 데이터를 전달할 때 값의 원본 메모리 주소를 전달
- 주소를 복사하여 이미 존재하는 인스턴스의 위치를 가리킴. 참조하는 값이 존재하는 위치를 stack 메모리 영역에, 참조되는 값은 heap 메모리 영역에 저장 됨
- iOS 프레임 워크의 대부분이 클래스로 구성되어 있음
Struct
- 상속 불가
- 인스턴스/타입) 메서드 or 프로퍼티
- 값 타입
- 데이터를 전달할 때 값을 복사하여 전달
- 값이 복사되어 새로운 인스턴스가 생성되고 이 인스턴스가 stack 메모리 영역에 저장됨
- Swift의 대부분의 큰 뼈대는 모든 구조체로 구성되어 있다?
- 참조가 아닌 복사가 필요할 때 or 자신을 상속할 필요가 없거나 상속받을 필요가 없을 때
Enum