Junior — Middle
Ar masyvo elementų prieigos operatoriaus naudojimas užtikrina apsaugą nuo išėjimo už ribų?
sobes.tech AI
Atsakymas iš AI
Swift'e, masyvo elementų prieigos operatorius (pavyzdžiui, array[index]) neužtikrina ribų peržengimo apsaugos. Jei indeksas viršija masyvo ribas, programa sukels veikimo metu klaidą ir netikėtai užsidarys.
Saugiai prieigai galima naudoti metodus, kurie grąžina pasirinktinę reikšmę, pavyzdžiui, išplėtimą su indekso patikra:
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, saugiai
Taip, standartinis operatorius neapsaugo, ir kūrėjas turi pats kontroliuoti ribas.