[swift] 17. Extension (익스텐션)
익스텐션이 타입에 추가할 수 있는 기능
- 연산 타입 프로퍼티 / 연산 인스턴스 프로퍼티
- 타입 메서드 / 인스턴스 메서드
- 이니셜라이저
- 서브스크립트
- 중첩 타입
- 특정 프로토콜을 준수할 수 있도록 기능 추가
extension SomeType {
// 추가 기능
}
extension 예제
Int extension
extension Int { // Int형 타입의 값이 짝수인지 홀수인지 판별할 수 있는 기능 추가.
// Int 타입의 어떠한 인스턴스에도 사용이 가능하다.
var isEven: Bool {
return self % 2 == 0
}
var isOdd: Bool {
return self % 2 == 1
}
}
var number = 3
var isOdd = number.isOdd
var isEven = number.isEven
print("number(\(number)) - isOdd: \(isOdd), isEven: \(isEven))
출력 결과
number(3) - isOdd: true, isEven: false
String extension
extension String { // String to Int extension
func convertToInt() -> Int? {
return Int(self)
}
}
var string = "0"
print(string)
print(string.convertToInt())
출력 결과
"0"
0