익스텐션은 아래와 같은 기능들을 타입에 추가해준다.
1. 연산 타입 프로퍼티와 연산 인스턴스 프로퍼티
2. 타입 메서드와 인스턴스 메서드
3. 이니셜라이저
4. 서브 스크립트
5. 중첩된 타입
6. 특정 프로토콜을 준수할 수 있도록 기능 추가
extension Int {
var isEven: Bool {
return self % 2 == 0
}
var isOdd: Bool {
return self % 2 == 1
}
}
var number = 3
number.isEven
// false
number.isOdd
// true
extension String {
func convertToInt() -> Int? {
return Int(self)
}
}
var string = 0
string.convertToInt()
// 0