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, με ασφάλεια

Έτσι, ο τυπικός τελεστής δεν προστατεύει, και ο προγραμματιστής πρέπει να ελέγχει χειροκίνητα τα όρια.