Day 25 - TIL
심화주차 과제 구현하기! + 배열 인덱싱 Error
Day 25 - TIL
📘 Day 25 - Today I Learned
🔍 Today’s Error or Issue
Error : 배열을 인덱스로 접근하여 삭제를 하려고 하였다. 그래서 삭제를하면 인덱싱 에러가 뜨는걸 인지하고 역순으로 순회하여 삭제를 진행하려고 for i in count - 1 … 1 으로 range를 줬는데 아래와 같은 에러가 떴다.
1 Thread 1: Fatal error: Range requires lowerBound <= upperBound
위 코드는 Swift에서 범위를 만들 때 lowerBound(시작값)가 upperBound(끝값)보다 커서 잘못된 범위를 만들었을 때 발생하는 런타임 오류다.
🛠️ Troubleshooting
여러가지 방법이 있는데, stride를 사용하여 에러를 해결 해줬다.
📝 Learning Summary
stride는 일정한 간격으로 숫자를 반복할 수 있게 해주는 함수다.
1
2
stride(from: 시작값, to: 끝값, by: 간격)
stride(from: 시작값, through: 끝값, by: 간격)
오름차순으로 반복(끝값 포함 ❌)
1
2
3
for i in stride(from: 0, to: 10, by: 2) {
print(i) // 0, 2, 4, 6, 8
}
오름차순으로 반복(끝값 포함 ⭕️)
1
2
3
for i in stride(from: 0, through: 10, by: 2) {
print(i) // 0, 2, 4, 6, 8, 10
}
내림차순 반복
1
2
3
for i in stride(from: 10, through: 0, by: -2) {
print(i) // 10, 8, 6, 4, 2, 0
}
📘 Lesson Learned
배열 인덱스를 역순으로 인덱싱을 할 때 기본적으로 그냥 반대로 인덱싱이 될줄 알았는데 swfit는 되지 않았다. 다음부터는 배열을 고칠때 조금 더 인덱스에 대해 신경 쓸 수 있도록 하자.
This post is licensed under CC BY 4.0 by the author.