not bad 한 개발

Swift - extension(확장) 본문

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이 출력됩니다.

'Swift' 카테고리의 다른 글

Swift - protocol(프로토콜)  (0) 2021.11.03
Swift - access modifier(접근 제어)  (0) 2021.11.03
Swift - override(클래스 상속)  (0) 2021.11.03
Swift - overloading(생성자 중첩)  (0) 2021.11.03
Swift - window VS Mac  (0) 2021.10.28
Comments