Vì vậy, tôi có một vòng lặp cho-trông tương tự như sau:Làm cách nào để viết vòng lặp for trong Swift 3 cho một mảng mà tôi sửa đổi trong vòng lặp for?
for var i = 0; i < results.count ; i += 1 {
if (results[i] < 5) {
results.removeAtIndex(i)
i -= 1
}
}
này được sử dụng để làm việc. Nhưng khi tôi thay đổi nó để cú pháp ưa thích Swift 3.0:
for var i in 0..<results.count {
if (results[i] < 5) {
results.removeAtIndex(i)
i -= 1
}
}
tôi nhận được một mảng IOOBE ngoại lệ bởi vì nó không kiểm tra lại số lượng và tiếp tục cho đến khi bản gốc results.count
.
Làm cách nào để khắc phục sự cố này? Nó hoạt động ngay bây giờ, nhưng tôi không muốn gặp rắc rối trong tương lai.
mã này không được phàn nàn cho var i trong 0 ..
nó không có lý do tại sao táo làm cho vòng lặp quá phức tạp, tôi không bao giờ nhớ có vấn đề với nó trong 25 năm qua –