밤에 쓴 코드

Swift) Extension - 익스텐션 본문

Swift

Swift) Extension - 익스텐션

붱이🦉 2019. 4. 25. 14:29

Swift) Extension 익스텐션


  • 사용하는 이유

    • 기존 타입의 기능확장
      • 확장된 코드 영역은 비교적 side effect 에서 자유로움
      • 기능별로 단위를 묶어서 표현하기 쉬움
  • 특징

    • *열거형, 구조체, 클래스, 프로토콜 확장 가능 *
    • 재정의는 불가능
    • 연산프로퍼티 추가가능
    • 상속과는 달리 수평적 기능 추가의 느낌이 있음
  • 사용 예시

    • 기존의 기본클래스(구조체)의 기능적 확장

      • extension Int{
          func changeToString ->(String){
            return "\(self)"
          }
        }
    • Default Implement - 프로토콜 기본구현

      • protocol runable{
          func run()
        }
        extension runable{
          func run(){    print("뒤뚱뒤뚱")    }
        }
    • TypeAlias 와 함께 사용

      • typealias Age = Int
        extension Age{
          mutating func aging(){
            self += 1
          }
        }

'Swift' 카테고리의 다른 글

Swift) Closure - 클로저  (0) 2019.05.08
Swift) POP - Protocol Oriented Programming  (1) 2019.04.25
Swift) 옵셔널 - Optional  (0) 2019.04.18
Swift) 프로토콜 - Protocol  (0) 2019.04.11
Swift) 구조체/변수/상수  (0) 2019.04.08
Comments