본문 바로가기
Swift

[Swift] 22. Extension

by CodingKwon 2021. 11. 18.

1. extension

  • 구조체, 클래스, 열거형, 프로토콜 타입에 새로운 기능을 추가할 수 있는 기능
  • extension은 타입에 새로운 기능을 추가 가능하지만 기존에 존재하는 기능을 재정의할 수는 없음

 

 

2. extension이 타입에 추가할 수 있는 기능

  • 연산 타입 프로퍼티 / 연산 인스턴스 프로퍼티
  • 타입 메서드/ 인스턴스 메서드
  • 이니셜라이저
  • 서브스크립트
  • 중첩 타입
  • 특정 프로토콜을 준수할 수 있도록 기능 추가

 

 

3. 상속과 익스텐션 비교

  상속 익스텐션
확장 수직 확장 수평 확장
사용 클래스 타입 클래스, 구조체, 프로토콜, 제네릭 등 모든 타입
재정의 가능 불가능

 

 

extension 확장할 타입 이름 {
    /* 타입에 추가될 새로운 기능 구현 */
}


extension 확장할 타입 이름: 프로토콜1, 프로토콜2, 프로토콜3... {
    /* 프로토콜 요구사항 구현 */
}

'Swift' 카테고리의 다른 글

[Swift] 23. 오류처리  (0) 2021.11.18
[Swift] 21. 프로토콜 Protocol  (0) 2021.11.18
[Swift] 20. assert, guard  (0) 2021.11.18
[Swift] 19. 타입캐스팅  (0) 2021.11.17
[Swift] 18. 옵셔널 체이닝, nil 병합 연산자  (0) 2021.11.15

댓글