반응형
안녕하십니까 공부하는 개발자 입니다.
오늘의 포스팅은 서브스크립트입니다.
⚙️ Subscripts
사실 서브스크립트는 우리가 많이쓰는 문법 중 하나입니다.
서브스크립트란 특정 member elements에 접근하는 문법으로
가장많이 사용되는 부분은 List입니다.
바로 list[0]이죠
이런 서브스크립트를 getter와 setter를 통해 조금 변경해 보겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
class List{
var data = [1, 2, 3]
subscript(index: Int) -> Int {
get{
return data[index]
}
set{
data[index] = newValue
}
}
}
var l = List()
l[0]
l[1] = 123
l[0]//파라미터를 두개를 넘기거나 다른 타입을 넣으면 에러발생
|
cs |
그렇다면 이중배열이면 어떤식으로 될까?
1
2
3
4
5
6
7
8
9
10
11
12
|
struct Matrix {
var data = [[1,2,3], [4, 5, 6], [7, 8, 9]]
subscript(row: Int, col:Int) -> Int{
return data[row][col]
}
}
let m = Matrix()
m[0][0]
m[0,0]// 만약 범위가벗어난다면 Index out of range에러가 뜬다.
|
cs |
마지막 11라인과 12라인중 어떤 방법이 맞을까요?
정답은 12라인의 m[0, 0]입니다.
원래는 11라인으로 이중배열에 값에 접근하는 것이 맞지만
이런식으로 선언되어있다면 12라인이 정답이 된다.
반응형
'Ios > Swift' 카테고리의 다른 글
[Swift] Overloading 스위프트 오버로딩 (0) | 2022.07.18 |
---|---|
[Swift] Inheritance 스위프트 상속 (0) | 2022.07.16 |
[Swift]Type Method 타입메서드 (0) | 2022.07.14 |
[Swift] Instance Method 인스턴스 메서드 (0) | 2022.07.13 |
[Swift] Property Observer 스위프트 속성 감시자 (0) | 2022.07.12 |