Swift Subscript
* 스스로 공부 및 정리를 위해 The Swift Language Guide을 요약 및 정리 한 내용입니다.
정의
- 서브스크립트는 콜렉션, 리스트, 시퀀스 등 집합의 특정 멤버 엘리먼트에 간단하게 접근할수 있는 문법입니다.
- 메소드 없이 특정 값을 할당 하거나 가져올수 있습니다.
- 하나의 타입에 여러 서브스크립트를 정의 할수 있고 오버로드도 가능합니다.
- 단일 인자 값 말고도 복수 인자 값을 사용할수도 있습니다.
서브스크립트 문법 (Sbuscript Syntax)
- 인스턴스 메소드와 계산된 프로퍼티를 선언하는 것과 비슷합니다.
- 서브스크립트는 읽고쓰기, 읽기 전용만 가능합니다.
- getter, setter 방식을 따릅니다.
- 이는 setter에서 newValue를 사용하거나, get,set을 따로 선언하지 않으면 get으로 동작된다는 의미입니다.
subscript(index: Int) -> Int{
get{
//반환 값
}
set{
// set 액션
}
}
import Foundation
//자동으로 읽기전용으로 생선된 subscript
struct SelfPlus{
var number = 0
subscript(index: Int) -> Int{
return number + index
}
}
let SixSelf = SelfPlus(number: 0)
서브스크립트 사용(Subscript Usage)
- 새로운 요소를 추가하는데 사용되기도 합니다
var MoveKey = ["forward": "w", "backward": "b", "right": "d", "left": "a" ]
MoveKey["jump"] = "space bar"
print(MoveKey.count)
서브스크립트 옵션(Subscript Option)
- 입력 인자의 숫자에 제한이 없고, 입력 인자의 타입과 반환타입의 제한도 없습니다.
- in-out인자나 기본인자값을 제공하지는 않습니다.
- 오버로딩을 허용합니다.
- 즉, 원하는 갯수 만큼의 서브스크립트를 선언할 수 있습니다.