서브스크립트
- 클래스, 구조체, 열거형에는 컬렉션, 리스트, 시퀀스 등에서 접근할 수 있는 서브스크립트를 정의할 수 있다
- 별도의 설정자, 접근자 등의 메서드를 구현하지 않아도 인덱스를 통해 값을 설정하거나 가져올 수 있다
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 키워드를 붙여준다
'Swift' 카테고리의 다른 글
[Swift] Codable-CodingKey 을 이용해 JSON 파싱하기 (0) | 2021.01.25 |
---|---|
[Swift] 상속 - 스위프트 언어 및 문법(13) - feat.야곰's Swift Programming (0) | 2021.01.19 |
[Swift] 모나드 - 스위프트 언어 및 문법(11) - feat.야곰's Swift Programming (0) | 2021.01.18 |
[Swift] 고차함수 - 스위프트 언어 및 문법(10) - feat.야곰's Swift Programming (0) | 2021.01.18 |
[Swift] 옵셔널 체이닝 - 스위프트 언어 및 문법(9) - feat.야곰's Swift Programming (0) | 2021.01.15 |