Sobes.tech
Junior — Middle

Gewährt die Verwendung des Operators zum Zugriff auf Array-Elemente Schutz vor Grenzüberschreitungen?

sobes.tech KI

Antwort von AI

In Swift schützt der Zugriff auf Array-Elemente (z.B. array[index]) nicht vor Überläufen. Wenn der Index außerhalb der Array-Grenzen liegt, löst die Anwendung einen Laufzeitfehler aus und beendet sich unerwartet.

Für sicheren Zugriff können Methoden verwendet werden, die einen optionalen Wert zurückgeben, z.B. eine Erweiterung mit Indexprüfung:

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, sicher

Daher schützt der Standardoperator nicht, und der Entwickler muss die Grenzen selbst kontrollieren.