Swift
Swift - extension(확장)
leebean
2021. 11. 3. 13:11
(인덕대학교 컴퓨터소프트웨어학과 iOS프로그래밍기초(21-2학기)한성현 교수님 강의 내용을 변형 및 요약 했습니다.)
extension(확장)
- class, struct, enum, protocol에 새로운 기능을 추가합니다.
- extension은 하위 클래스를 생성하거나 참조하지 않고 기존 클래스에 메서드(method), 생성자(initializer), 계산 프로퍼티(computed property) 등의 기능을 추가하기 위하여 사용합니다.
- 클래스(구조체, 열거형, protocol)는 다음과 같은 형태로 확장합니다.
-
extension 기존타입이름 { // 새로운 기능 }
-
(extension 예제 코드)
class Food{
var pay :Int = 5000
var size :Double = 30.5
var payDc :Int{//메서드처럼 보이지만 계산 프로퍼티 입니다.
//get{
return pay -1000
//}
}
func Display(){
print("가격=\(pay), 크기=\(size)")
}
init(pay:Int, size:Double){
self.pay = pay
self.size = size
}
}
var chicken : Food = Food(pay:15000, size:2.0)
chicken.Display()// 가격=15000, 크기=2.0 출력됩니다.
print(chicken.payDc)//14000 출력됩니다.
//표준 자료형 Int 구조체에 20을 더한 값을 반환하는 프로퍼티를 추가했습니다.
extension Int{
var squad :Int{
return self +20
}
}
let reSult:Int = 20
print(reSult.squad)//40이 출력됩니다.
print(20.squad)//40이 출력됩니다.