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.