반응형
이 글은 Swift 5.1에 제안된 SE-0254 Static and class subscripts 업데이트를 살펴보는 글입니다.
결론부터 말해서 이제 subscript
를 static 하게 쓸 수 있습니다. 이번에도 다짜고짜 예제로 살펴봅시다.
struct HTTPStatus {
private static var map = [Int: String]()
static subscript(_ code: Int) -> String? {
get {
map[code]
}
set {
map[code] = newValue
}
}
}
위 예제에서 subscript
가 static
으로 선언되어 있습니다. 따라서 이제 인스턴스화 시키지 않고도 아래처럼 접근할 수 있습니다.
HTTPStatus[200] = "Ok"
HTTPStatus[404] = "Not Found"
HTTPStatus[500] = "Internal Server Error"
print(HTTPStatus[404]) //Not Found
이 예제처럼 쓸 바에는 그냥 사전형 타입을 그대로 쓰는 게 편하겠지요. 당연하게도 static subscript의 능력을 알아보기 위한 억지로(?) 만든 예제였습니다. 어쨌든 subscript
의 능력은 무궁무진하니 알아두면 좋을 것 같습니다.
728x90
반응형
'기술적인 이야기 > 애플 플랫폼 개발' 카테고리의 다른 글
[Swift 5.1] Identifiable (SE-0261) (0) | 2019.11.12 |
---|---|
[Swift 5.1] 리턴 생략 가능 (SE-0255) (0) | 2019.11.05 |
[Swift 5.1] 키 패스를 이용한 동적 멤버 찾아보기 (SE-0252) (0) | 2019.10.30 |
[Swift 5.1] 초기화 없는 배열 생성하기 (SE-0245) (0) | 2019.10.24 |
[Swift 5.1] Opaque Result Types 그리고 some (SE-0244) (0) | 2019.10.18 |
댓글