Class
- 객체라는 용어 대신 인스턴스 사용
- (인스턴스/타입) 메서드 || 프로퍼티
- 래퍼런스 형태로 공유 가능
- 단일 상속만 가능
- 참조 타입 (데이터 전달 시, 값이 아닌 메모리의 위치를 전달)
Struct
- Swift의 대부분의 자료형 타입은 구조체로 정의된다.
- (인스턴스/타입) 메서드 || 프로퍼티
- 항상 새로운 변수의 값의 복사가 일어나, 멀티 스레드 환경에서 에러 발생확률이 적다.
- 상속 불가
- 값 타입 (데이터 전달 시, 값을 복사해서 전달)
Enum
- 유사한 종류의 여러 값을 유의미한 이름으로 모아놓은 타입
- (인스턴스/타입) 메서드 || 연산 프로퍼티 지정
- case들이 그 자체로 값
- 상속 불가
- 값 타입 (데이터 전달 시, 값을 복사해서 전달)
구조체와 클래스를 사용하는 상황 구별
- 4가지 경우 중 하나 이상 해당될 경우 구조체 사용, 이외에는 클래스 사용.
1, 서로 연관된 몇 개의 기본 데이터 타입들을 캡슐화하여 묶는 것이 목적일 때
2, 캡슐화된 데이터에 상속이 필요하지 않을 때
3, 캡슐화된 데이터를 전달하거나 할당하는 과정에서 참조 방식보다는 값이 복사되는 것이 합리적일 때
4, 캡슐화된 원본 데이터를 보존해야 할 때
내용 출처
https://roniruny.tistory.com/136
'iOS > Swift 문법 복습' 카테고리의 다른 글
(인스턴스, 스태틱, 클래스) 메서드 (0) | 2022.06.30 |
---|---|
프로토콜 [Protocol] (0) | 2022.06.29 |
옵셔널 [Optional] (0) | 2022.06.28 |
프로퍼티 (Properties) (0) | 2022.06.27 |
댓글