Есть ли способ, аналогичный использованию if let
и/или optionals, чтобы проверить, собираетесь ли вы индексировать пустой буфер в Swift?Как предотвратить ошибку «Индекс массива вне диапазона»?
ответ
Определите ваши собственные:
extension Array {
func ref (i:Int) -> T? {
return 0 <= i && i < count ? self[i] : nil
}
}
ref()
функция возвращает необязательный, поэтому он может быть nil
, и вы можете использовать синтаксис if let
для доступа к возвращаемое значение из ref()
, когда он существует. Вы использовали бы это как таковое:
var myA = [10,20,30]
if let val = myA.ref(index) {
// Use 'val' if index is < 3
}
else {
// Do this if the index is too high
}
Я не очень хорошо это понимаю. Можете ли вы показать мне, как использовать его и, может быть, что он делает? – webmagnets
Большое спасибо. – webmagnets
Я думаю, что ref нуждается в лучшем имени. Но я не мог подумать. – osrl
- 1. 2d индекс массива вне диапазона
- 2. Индекс массива вне диапазона. ОШИБКА
- 3. индекс строки массива вне диапазона
- 4. Индекс испытаний вне диапазона golang
- 5. Индекс массива вне диапазона swift 3
- 6. Почему это дает ошибку «Индекс вне диапазона»?
- 7. Фатальная ошибка: Индекс массива вне диапазона
- 8. Unity C# - Индекс массива вне диапазона
- 9. 'Индекс массива вне диапазона' в 'RefreshControl'
- 10. Swift 2 + Анализировать: Индекс массива вне диапазона
- 11. Pickerview делегат UIView: индекс массива вне диапазона
- 12. sys.argv: индекс вне диапазона
- 13. Matrix, индекс вне диапазона
- 14. векторный индекс вне диапазона :(
- 15. Индекс ошибки вне диапазона
- 16. индекс массива вне диапазона в поиске
- 17. Индекс массива вне диапазона запроса и CollectionCell
- 18. JPA Индекс массива вне допустимого диапазона
- 19. Swift - фатальная ошибка: Индекс массива вне диапазона
- 20. Быстрая фатальная ошибка: индекс массива вне диапазона
- 21. "Фатальная ошибка: Индекс массива вне диапазона стрижа"
- 22. строка индекс вне диапазона
- 23. C++: индекс вне диапазона
- 24. pyAudioAnalysis, индекс Tuple вне диапазона
- 25. Ошибка: индекс вне диапазона
- 26. Вектор индекс вне диапазона -
- 27. ошибка: индекс вне диапазона
- 28. #list индекс вне диапазона
- 29. Python: индекс вне диапазона
- 30. C# Индекс Вне диапазона
Определить «буфер»? –
Я не знаю, что это значит. Это ошибка, которую я получаю, когда пытаюсь получить доступ к индексу массива, который еще не существует; слишком высоко. Массив может содержать 10 элементов, но приложение пытается получить доступ к 11-му. – webmagnets
Итак, это массив, проверьте границы массива, используя свойство count ('array.count'). GoZoner дает пример в своем ответе. –