Sobes.tech
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, безопасно

По този начин, стандартният оператор не защитава, и разработчикът трябва сам да контролира границите.