Swift
[Swift] 22. Extension
CodingKwon
2021. 11. 18. 22:49
1. extension
- 구조체, 클래스, 열거형, 프로토콜 타입에 새로운 기능을 추가할 수 있는 기능
- extension은 타입에 새로운 기능을 추가 가능하지만 기존에 존재하는 기능을 재정의할 수는 없음
2. extension이 타입에 추가할 수 있는 기능
- 연산 타입 프로퍼티 / 연산 인스턴스 프로퍼티
- 타입 메서드/ 인스턴스 메서드
- 이니셜라이저
- 서브스크립트
- 중첩 타입
- 특정 프로토콜을 준수할 수 있도록 기능 추가
3. 상속과 익스텐션 비교
상속 | 익스텐션 | |
확장 | 수직 확장 | 수평 확장 |
사용 | 클래스 타입 | 클래스, 구조체, 프로토콜, 제네릭 등 모든 타입 |
재정의 | 가능 | 불가능 |
extension 확장할 타입 이름 {
/* 타입에 추가될 새로운 기능 구현 */
}
extension 확장할 타입 이름: 프로토콜1, 프로토콜2, 프로토콜3... {
/* 프로토콜 요구사항 구현 */
}