Swift
[Swift] 서브스크립트 - 스위프트 언어 및 문법(12) - feat.야곰's Swift Programming
나무는tree
2021. 1. 18. 13:38
서브스크립트
- 클래스, 구조체, 열거형에는 컬렉션, 리스트, 시퀀스 등에서 접근할 수 있는 서브스크립트를 정의할 수 있다
- 별도의 설정자, 접근자 등의 메서드를 구현하지 않아도 인덱스를 통해 값을 설정하거나 가져올 수 있다
ex) Dictionary에서 dictionary[key] -> 이것이 서브스크립트 다
문법
subscript(index: Int) -> Int{
get{
//getter
}
set(newValue){
//setter
}
}
구현
struct Student{
//...
}
class School{
var students: [Student] = []
func addStudent()...
...
//School Class 내부에 있는 값들 혹은 그 값들의 조합으로도 반환 가능
subscript(index: Int) -> Student?{
if index < self.number{
return self.students[index]
}
return nil
}
}
복수개의 서브스크립트
- 하나의 타입이 여러개의 서브스크립트를 가징 수 있다
- 매개변수 타입과 개수, 반환 타입이 다르면 가능하다
- 서브스크립트에도 다형성이 가능
타입 서브스크립트
- subscript 앞에 static/class 키워드를 붙여준다