Extension은 새로운 함수적 기능을 class, struct, enum, protocol에 확장한다는 의미를 가진다.
Extension으로 타입에 추가할 수 있는 기능
- 연산 타입 프로퍼티/ 연산 인스턴스 프로퍼티
- 타입 메서드/ 인스턴스 메서드
- 이니셜라이저
- SubScripts
- 중첩 타입
- 특정 프로토콜을 준수할 수 있도록 기능 추가
상속과 Extension의 차이점
상속 | Extension | |
타입 | 클래스 타입만 가능 | 구조체, 클래스, 프로토콜 등에 적용 가능 |
특징 | - 특정 타입을 물려받아 하나의 새로운 타입을 정의하고 추가 기능을 구현할 수 있음 - 수직 확장 |
- 기존 타입에 기능을 추가 가능 - 수평 확장 - 특정 타입을 준수하는 프로토콜 별 구현부를 분리하여 코드 가독성을 높일 수 있음 |
override | 기존 기능을 재정의 할 수 있음 | 재정의 불가능 |
# 참고한 사이트
'iOS > Swift 상식' 카테고리의 다른 글
property wrapper (0) | 2023.03.10 |
---|---|
defer (0) | 2023.03.09 |
Escaping 사용하기 (0) | 2023.03.05 |
Escaping 개념 (0) | 2023.03.04 |
Mutating (0) | 2023.03.04 |