C++ 에서는 찾기 힘든 기능인 익스텐션(Extension)이라는 기능에 대해서 공부 중이다. 익스텐션은 기존의 Objective-C에 존재하는 카테고리와 유사한 기능이라고 한다.
익스텐션은 클래스의 상속과 유사해 보이지만 새로운 기능을 추가하는 것만 가능할 뿐, 기존에 존재하는 기능을 재정의할 수 없다고 한다.
상속 | 익스텐션 | |
확장 | 수직 확장 | 수평 확장 |
사용 | 클래스 타입에서만 사용 | 클래스, 구조체, 프로토콜, 제네릭 등 모든 타입에서 사용 |
재정의 | 재정의 가능 | 재정의 불가 |
(위 표는 야곰의 스위프트 프로그래밍 3판에 나온 표입니다.)
Swift의 기본 타입인 Int에 새로운 연산 프로퍼티를 추가하여 짝수인지 홀수인지 판별할 수 있다. 또한 메서드를 추가할 수도 있다. 그 후에는 아래처럼 사용 가능하다.
'Swift' 카테고리의 다른 글
프로젝트 리소스(Image, ColorSet 등) 관리하기 (0) | 2022.01.25 |
---|---|
사진 갤러리 이미지에 접근하기 1 (부제 UIImagePickerController) (0) | 2022.01.18 |
익스텐션(Extension) 2편 (0) | 2020.01.29 |
댓글