[Swift] (기초) Value Type(값 타입) / Reference Type(참조 타입)
2021. 8. 24. 21:19ㆍ🍏/Swift 기초 공부
- Class
- 전통적인 OOP(Object - oriented programming) 객체 지향 프로그래밍 관점에서의 클래스
- 단일상속
- (인스턴스/타입) 메서드
- (인스턴스/타입) 프로퍼티
- 참조 타입
- Apple 프레임워크의 대부분의 큰 뼈대는 모두 클래스로 구성
- Struct
- C 언어 등의 구조체보다 다양한 기능
- 상속 불가
- (인스턴스/타입) 메서드
- (인스턴스/타입) 프로퍼티
- 값 타입
- Swift의 대부분의 큰 뼈대는 모두 구조체로 구성
- Enum
- Enumeration
- 유사한 종류의 여러 값을 유의미한 이름으로 한 곳에 모아 정의. 예) 요일, 상태값, 월(month) 등
- 열거형 자체가 하나의 데이터 타입
열거형의 case 하나하나 전부 하나의 유의미한 값으로 취급
Class | Struct | Enum | |
Type | Reference | Value | Value |
Subclassing | O | X | X |
Extension | O | O | O |
구조체는 언제 사용하는가 ?
- 연관된 몇몇의 값들을 모아서 하나의 데이터타입으로 표현하고 싶을 때
- 다른 객체 또는 함수 등으로 전달될때
- 참조가 아닌 복사를 원할 때
- 자신을 상속할 필요가 없거나, 자신이 다른타입을 상속받을 필요가 없을 때
- Apple 프레임워크에서 프로그래밍을 할 때에는 주로 클래스를 많이 사용
Value vs Reference
- Value
- 데이터를 전달할 때 값을 복사하여 전달
- Reference
- 데이터를 전달할 때 값의 메모리 위치를 전달
'🍏 > Swift 기초 공부' 카테고리의 다른 글
[Swift] (기초) Property / 프로퍼티 (0) | 2021.08.24 |
---|---|
[Swift] (기초) Closures / 클로저 (0) | 2021.08.24 |
[Swift] (기초) Enum / 열거형 (0) | 2021.07.16 |
[Swift] (기초) Class / 클래스 (0) | 2021.07.16 |
[Swift] (기초) Sturct / 구조체 (0) | 2021.07.16 |