Ein Wert, der fehlen kann, hat einen Optional-Typ: Int?. Er ist entweder ein Wert oder nil. Du packst ihn sicher aus mit if let oder guard let. Mit ?? gibst du einen Standardwert an. Das Ausrufezeichen ! erzwingt das Auspacken und stürzt bei nil ab.
So verhindert Swift zur Übersetzungszeit viele Nullzeiger-Fehler.
let eingabe = "42"
let zahl = Int(eingabe) // Int? (nil bei ungültiger Eingabe)
if let z = zahl {
print(z + 1) // 43
}
print(zahl ?? 0)
func gruss(_ name: String?) {
guard let n = name else { print("kein Name"); return }
print("Hallo \(n)")
}
gruss(nil)Merke
Int?kann nil seinif let/guard letpacken sicher aus??liefert einen Standardwert
Aufgabe
Wandle einen Text mit `Int(...)` um und gib bei Fehler 0 aus.