Swift & iOS

[Swift] 익스텐션 (Extensions)

hammii 2022. 6. 16. 17:04
728x90
반응형

익스텐션이란?

  • 기존의 클래스, 구조체, 열거형, 프로토콜에 새로운 기능을 추가하는 기능
  • 주로 외부에서 가져온 타입에 내가 원하는 기능을 추가하고자 할 때 익스텐션을 사용한다.
  • 익스텐션은 모든 타입에 적용할 수 있다.
  • 새로운 기능을 추가할 순 있지만 기존의 기능을 재정의(오버라이드) 할 순 없다.

 

익스텐션이 타입에 추가할 수 있는 기능

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

extension Int {
    var isEven: Bool {
        return self % 2 == 0
    }
    
    var isOdd: Bool {
        return self % 2 == 1
    }
}

var number = 3
number.isOdd	// true
number.isEven	// false

extension String {
    func convertToInt() -> Int? {
        return Int(self)
    }
}

var string = "0"
string.convertToInt()	// 0

 

 

출처: [패스트캠퍼스] 30개 프로젝트로 배우는 iOS 앱 개발 with Swift 초격차 패키지 Online.

 

728x90
반응형