iOS_Swift/문법 정리

Swift - Subscript(서브스크립트)

chozjjae 2022. 5. 21. 21:21

Swift의 Subscript 란?

클래스, 구조체, 열거형이 컬렉션 멤버에 접근하기 위한 문법이다.

특징

  • 별도의 getter, setter를 구현하지 않아도 set하거나 get할 수 있다.
  • *함수,  *계산 프로퍼티와의 형태가 유사하다.
  • 다양한 매개변수 타입을 사용하여 overload가 가능하다.
  • 인스턴스 이름 뒤에 대괄호만으로 편리하게 사용 가능하다.

사용 예제 1

Int -> Int 형으로 받아오기 

struct Num{
    let num = [1,2,3,4,5] //구조체의 property가 Array형
    subscript(i:Int) -> Int{ 
    //매개변수는 첨자 자료형, 리턴형은 Int
        return num[i]
    }
}
var n = Num() //인스턴스 생성
print(n) 
//Num(num: [1, 2, 3, 4, 5])
print(n.num)
//[1, 2, 3, 4, 5]
print(n[0],n[1],n[2])
//1 2 3
//각각의 배열의 값을 가져올때 subscript 사용

사용 예제 2

Int -> String 형으로 받아오기

class Man{
    let month = ["4월", "1일", "10초"]
    subscript(i:Int) -> String{ 
    //값을 받아오기 위해 매개변수 첨자는 Int
    //리턴형은 String 사용
        return month[i]
    }
}
var m = Man()
print(m.month[0]) //4월
print(m.month[1]) //1일
print(m.month[2]) //10초

인덕대학교 한성현 교수님의 강의를 참고하였습니다.

youtube - smile Han