Class - Extensions
익스텐션을 이용해 기존 이미 정의된 클래스, 구조체, 열거형, 프로토콜 타입에 기능을 추가할 수 있다.
추가 가능한 기능
- Computed Property
- Method
- Initializer
- Subscript
- Protocol 따르도록
- 중첩 타입
Syntax
class SomeType {
}
//기본 문법
extension SomeType {
	//추가기능
}
//Protocol with extension
extension SomeType: SomeProtocol {
}Example
//연산 프로퍼티
extension Double {
    var km: Double { return self * 1_000.0 }
}
//메소드를 확장
extension Int {
		func multiple(_ value: Int) {
				return self * value
		}
}
//Initializer 확장
extension Rect {
    init(center: Point, size: Size) {
        let originX = center.x - (size.width / 2)
        let originY = center.y - (size.height / 2)
        self.init(origin: Point(x: originX, y: originY), size: size)
    }
}
//Subscript 확장
extension Int {
    subscript(digitIndex: Int) -> Int {
        var decimalBase = 1
        for _ in 0..<digitIndex {
            decimalBase *= 10
        }
        return (self / decimalBase) % 10
    }
}
746381295[0]
// returns 5
#학습에 대한 내용으로 틀린 내용이 있을 수 있습니다.
#댓글로 남겨주시면 더 좋은 게시글로 수정하도록 하겠습니다.
Author And Source
이 문제에 관하여(Class - Extensions), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@elile-e/Class-Extensions저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)