EXTENSION
- 존재하는 클래스, 구조체, 열거형, 프로토콜 타입에 새롭게 기능적인 부분 추가할 수 있는 문법
- 이전의 내부 소스를 접근할 수 없는 원본 타입들에 대해 새로운 기능 부여 가능
EXTENSION 기능
- 계산 property, 계산 타입 property 추가 기능
- instance method, type method 정의
- 새로운 initializer 제공
- subscripts(첨자) 접근방식 정의
- nested type(중첩 타입) 정의 및 사용
- 특정 프로토콜을 준수하는 현존 타입 정의
- 전역 함수가 아닌 프로토콜 자체에서 동작 정의 가능
EXTENSION 예
extension RandomNumberGenerator {
func randomBool() -> Bool {
return random() > 0.5
}
}
let generator = LinearCongruentialGenerator()
print("Here's a random number: \(generator.random())")
// Prints "Here's a random number: 0.3746499199817101"
print("And here's a random Boolean: \(generator.randomBool())")
// Prints "And here's a random Boolean: true"
- 프로토콜에 대한 확장 생성함으로써 추가 수정없이 메소드 구현 자동적으로 얻음
마무리
- extension 기능은 위와 같이 구조체, 클래스, 열거형, 프로토콜의 추가 구현부, 제약사항, 기능 등을 정의할 수 있는 유용한 기능
- 특정 타입의 기능 및 준수하는 프로토콜 별 구현부를 분리해서 보다 코드를 보기 쉽게 정리 가능
320x100
'프로그래밍 > iOS-Swift' 카테고리의 다른 글
맥북으로 아이패드 혹은 아이폰 UUID 확인하기 (0) | 2021.04.05 |
---|---|
[SWIFT] Tap Gesture - Keyboard Hide (0) | 2021.04.05 |
[SWIFT] Autoresizing (0) | 2021.04.02 |
[SWIFT] View Controller 수명주기 (0) | 2021.04.02 |
[SWIFT] 로컬 파일 로드하는 방법 (1) | 2021.03.31 |
댓글