Sobes.tech
Junior — Middle

Utilizarea operatorului de acces la elementele array-ului asigură protecție împotriva ieșirii din limite?

sobes.tech AI

Răspuns de la AI

În Swift, operatorul de acces la elementele array-ului (de exemplu, array[index]) nu asigură protecție împotriva depășirii limitei. Dacă indexul depășește limitele array-ului, aplicația va genera o eroare la runtime și se va închide brusc.

Pentru acces sigur, se pot folosi metode care returnează o valoare opțională, de exemplu, o extensie cu verificarea indexului:

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, în siguranță

Astfel, operatorul standard nu protejează, iar dezvoltatorul trebuie să controleze manual limitele.