
extension을 사용해 하위 클래스를 생성하거나 참조하지 않고, 기존 클래스에 기능을 추가할 수 있다.
extension ClassName {
//새로운 기능 추가 (오버라이드와 달리 기존코드 작성X)
}
👆🏻 이런 형식으로 사용한다.
예제로, 표준 Double 클래스에 제곱값과 세제곱값을 반환하는 두 개의 프로퍼티를 추가해보자.
extension Double {
var squared: Double {
return self*self
}
var cubed: Double {
return self*self*self
}
}
사용은 다음과 같이 한다.
let myValue: Double = 3.0
print(myValue.squared)
// 9.0
위의 예제에서는 Double값에 직접 접근했으니, 다음과 같이 사용할 수도 있다.
print(3.0.squared)
print(6.0.cubed)
익스텐션 사용 시,
📚 참고도서
[SwiftUI 기반의 iOS 프로그래밍]