익스텐션(Extension) 1편

     C++ 에서는 찾기 힘든 기능인 익스텐션(Extension)이라는 기능에 대해서 공부 중이다. 익스텐션은 기존의 Objective-C에 존재하는 카테고리와 유사한 기능이라고 한다.

     

    익스텐션은 클래스의 상속과 유사해 보이지만 새로운 기능을 추가하는 것만 가능할 뿐, 기존에 존재하는 기능을 재정의할 수 없다고 한다.

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

    (위 표는 야곰의 스위프트 프로그래밍 3판에 나온 표입니다.)

     

     

    Swift의 기본 타입인 Int에 새로운 연산 프로퍼티를 추가하여 짝수인지 홀수인지 판별할 수 있다. 또한 메서드를 추가할 수도 있다.  그 후에는 아래처럼 사용 가능하다. 

    댓글