익스텐션을 이용해 클래스, 구조체, 열거형 혹은 프로토콜 타입에 기능을 추가할 수 있다.
익스텐션은 타입에 새 기능을 추가할 수 있지만 오버라이드는(override)는 할 수 없다.
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 (Int type)