안녕하세요.
맥파이입니다.
오늘은 우리가 자주쓰지만 이름을 모르는 서브스크립트(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도 이와 같은 방식으로 동작하고 있었습니다.
오늘도 또 하나 배우고 가셨나요?
또 만나요!!