Junior — Middle
Осигурява ли използването на оператора за достъп до елементите на масива защита срещу излизане извън границите?
sobes.tech AI
Отговор от AI
В Swift операторът за достъп до елементите на масив (например, array[index]) не осигурява защита срещу излизане извън границите. Ако индексът е извън границите на масива, приложението ще генерира грешка по време на изпълнение и ще се затвори неочаквано.
За безопасен достъп могат да се използват методи, които връщат опционална стойност, например разширение с проверка на индекса:
extension Array {
func safeGet(index: Int) -> Element? {
return indices.contains(index) ? self[index] : nil
}
}
let arr = [1, 2, 3]
print(arr.safeGet(index: 5)) // nil, безопасно
По този начин, стандартният оператор не защитава, и разработчикът трябва сам да контролира границите.