[iOS] SubScript를 안다면 당신은 진정한 고수

유인호·2024년 1월 23일
0

iOS

목록 보기
22/64

0. 서론

SubScript... 이름만 들어도 무시무시 하지 않은가? 필자는 처음 서브스크립트라는 단어를 듣고 솔직히 공부하지 않았다. 이름만 들어도 무엇인가 굉장히 고-급져보이고 Swift 걸음마 떼는 수준의 사람에겐 가당치 않아보이는 문법이였기 때문이다. 최근 다시 문법을 공부하다보니 그런식으로 건너 뛴 문법들이 많아서 처음부터 다시 공부하고 있는데, 오늘은 그 중 뭔가 알고 있으면 고수처럼 보이는 서브스크립트에 대해 알아볼 것 이다.


1. 서브스크립트가 뭔데?

이 글을 읽을 정도면, 사실 서브스크립트를 자유자재로 다루고 있는 사람일 가능성이 매우 높다. (아님 말고) 왜냐하면 아마 배열과 딕셔너리를 사용해봤을텐데, 거기서 사용되는게 서브스크립트이기 때문이다.

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

이게 서브스크립트의 전부이다.


2. 그래서 서브스크립트가 뭔데?

method와 Computed Property의 중간 그 즈음이라고 보면 된다. 이게 무슨말인진 코드를 보면 알 수 있다.

subscript(index: IndexType) -> ElementType {
    get {

	}
    set{
        
    }
}

subscript를 정의하는 코드의 예제인데, 메서드처럼 파라미터를 받을수 있으면서, 연산 프로퍼티처럼 get, set블록을 나눌수도 있다.
[iOS] UserDefaults와 SubScript의 운명적 만남이라는 필자가 쓴 게시물을 보면 Userdefaults와 엮어서 쓴 예제도 있다.

3. 그래서 서브스크립트를 왜 쓰는데?

G선생님의 힘을 빌려서 글을 끝마치겠다.

서브스크립트를 사용하는 이유:

  • 자연스러운 문법: 서브스크립트를 사용하면 다른 컬렉션과 마찬가지로 instance[index] 또는 instance[key]와 같은 자연스러운 문법을 사용할 수 있습니다.
  • 직관적인 접근: 특히 컬렉션과 관련된 타입에서 서브스크립트를 사용하면 해당 인스턴스에 직관적으로 접근할 수 있습니다. 예를 들어, 배열의 요소를 읽거나 쓸 때 메서드보다 간편합니다.
profile
🍎Apple Developer Academy @ POSTECH 2nd, 🌱SeSAC iOS 4th

0개의 댓글