카테고리 없음

[Swift] 서브스크립트(subscript)란?

magpiebros 2023. 4. 9. 12:56
반응형

안녕하세요.

맥파이입니다.

오늘은 우리가 자주쓰지만 이름을 모르는 서브스크립트(subscript)에 대해 알아볼것입니다.

 

Swift에서 컬렉션 타입(Array, Set, Dictionary 등)은 서브스크립트(subscript)를 제공합니다. 서브스크립트를 이용하면, 컬렉션 내부의 값을 인덱스를 이용하여 접근할 수 있습니다.

 

서브스크립트(subscript)

서브스크립트는 다음과 같은 형태를 가집니다.

subscript(index: Int) -> Element { get set }

위 형태에서 index는 접근하고자 하는 값을 가리키는 인덱스를 나타내며, Element는 컬렉션 내부에 저장된 값의 타입을 나타냅니다.

Swift에서 서브스크립트(subscript)는 클래스, 구조체, 열거형 등에서 컬렉션의 멤버에 접근하는 방법 중 하나입니다. 
서브스크립트는 인덱스(index)를 이용하여 컬렉션 내의 특정 위치에 있는 값을 읽거나 쓸 수 있도록 해줍니다.

 

subscript(index: Int) -> Int {
    get {
        // index에 해당하는 값을 반환하는 코드
    }
    set(newValue) {
        // index에 해당하는 값을 newValue로 설정하는 코드
    }
}

위의 예제에서 subscript 키워드는 서브스크립트를 선언하는 키워드입니다.

index는 인자로 전달된 인덱스 값입니다.

get 블록은 서브스크립트로 값을 읽을 때 호출되는 블록이고, set 블록은 값을 쓸 때 호출되는 블록입니다.

이렇게 서브스크립트를 선언하면, 해당 컬렉션에서 인덱스를 사용하여 값을 읽거나 쓸 수 있습니다.

 

 

struct IntArray {
    private var array = [Int]()
    
    subscript(index: Int) -> Int {
        get {
            return array[index]
        }
        set(newValue) {
            array[index] = newValue
        }
    }
}

정수 배열을 정의하고 서브스크립트를 이용하여 배열의 값을 읽고 쓸 수 있습니다.

 

var arr = IntArray()
arr[0] = 10
arr[1] = 20
print(arr[0]) // 10
print(arr[1]) // 20


서브스크립트를 사용하면, 컬렉션 내부의 값을 쉽게 읽고 쓸 수 있습니다.

우리가 사용하던 array도 이와 같은 방식으로 동작하고 있었습니다.

 

오늘도 또 하나 배우고 가셨나요?

또 만나요!!

반응형