SubScript... 이름만 들어도 무시무시 하지 않은가? 필자는 처음 서브스크립트라는 단어를 듣고 솔직히 공부하지 않았다. 이름만 들어도 무엇인가 굉장히 고-급져보이고 Swift 걸음마 떼는 수준의 사람에겐 가당치 않아보이는 문법이였기 때문이다. 최근 다시 문법을 공부하다보니 그런식으로 건너 뛴 문법들이 많아서 처음부터 다시 공부하고 있는데, 오늘은 그 중 뭔가 알고 있으면 고수처럼 보이는 서브스크립트에 대해 알아볼 것 이다.
이 글을 읽을 정도면, 사실 서브스크립트를 자유자재로 다루고 있는 사람일 가능성이 매우 높다. (아님 말고) 왜냐하면 아마 배열과 딕셔너리를 사용해봤을텐데, 거기서 사용되는게 서브스크립트이기 때문이다.
var arr: [Int] = [1,2,3]
arr[2] // <- 이게 서브스크립트의 Getter임
arr[2]를 통하면 3번째의 Index인 3에 접근할 수 있게 된다. 또한,
arr[2] = 5 // <- 서브스크립트의 Setter임
배열의 값을 변경할 수도 있다. 딕셔너리도 동일하다.
var myDictionary = SimpleDictionary<String, Int>()
myDictionary["apple"] = 5
이게 서브스크립트의 전부이다.
method와 Computed Property의 중간 그 즈음이라고 보면 된다. 이게 무슨말인진 코드를 보면 알 수 있다.
subscript(index: IndexType) -> ElementType {
get {
}
set{
}
}
subscript를 정의하는 코드의 예제인데, 메서드처럼 파라미터를 받을수 있으면서, 연산 프로퍼티처럼 get, set블록을 나눌수도 있다.
[iOS] UserDefaults와 SubScript의 운명적 만남이라는 필자가 쓴 게시물을 보면 Userdefaults와 엮어서 쓴 예제도 있다.
G선생님의 힘을 빌려서 글을 끝마치겠다.