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.