[Swift] 익스텐션(extension)

팔랑이·2023년 6월 14일
post-thumbnail

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 프로그래밍]

profile
정체되지 않는 성장

0개의 댓글