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, με ασφάλεια
Έτσι, ο τυπικός τελεστής δεν προστατεύει, και ο προγραμματιστής πρέπει να ελέγχει χειροκίνητα τα όρια.