guard let für vorzeitiges Beenden
Entpacken Sie Werte und beenden Sie bei einem Fehler frühzeitig, um Verschachtelungen zu reduzieren.
guard let für vorzeitiges Beenden ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.
Die Idee hinter guard
guard prüft eine Bedingung und verlässt bei einem negativen Ergebnis den aktuellen Gültigkeitsbereich. Es ist für frühe Ausstiege gedacht, damit der normale Ablauf nicht eingerückt werden muss.
func greet(_ name: String?) {
guard let name else {
print("No name")
return
}
print("Hello, \(name)")
}
greet("Ada")
greet(nil)guard-let-Syntax
Schreiben Sie guard let value = optional else { return }. Anders als bei if let bleibt der entpackte Wert nach dem guard im Gültigkeitsbereich.
func double(_ text: String) {
guard let n = Int(text) else {
print("Not a number")
return
}
print(n * 2)
}
double("8")
double("x")Der Wert bleibt verfügbar
Da guard bei einem Fehlschlag den Gültigkeitsbereich verlässt, weiß der Compiler, dass der Wert danach vorhanden ist. Sie können ihn im restlichen Teil der Funktion normal verwenden.
func length(of text: String?) {
guard let text else { return }
let count = text.count
print(count)
}
length("hello")Der else-Block muss beendet werden
Der else-Block eines guard muss den aktuellen Gültigkeitsbereich verlassen: mit return, break, continue oder throw. Dies wird vom Compiler erzwungen.
func process(_ value: Int?) {
guard let value else {
return
}
print("Processing \(value)")
}
process(99)Kurzform für guard let
Wie bei if let unterstützt auch guard eine Kurzform: guard let name else { ... }, wenn die Namen übereinstimmen.
func show(_ name: String?) {
guard let name else {
print("missing")
return
}
print(name)
}
show("Kai")Flacher Happy Path
Der große Vorteil von guard ist ein flacher, gut lesbarer Happy Path. Vergleichen Sie verschachtelte if let-Pyramiden mit einer Reihe von guard-Anweisungen.
func register(name: String?, age: Int?) {
guard let name else { return }
guard let age else { return }
print("\(name) is \(age)")
}
register(name: "Mia", age: 28)Einfache Bedingungen mit guard prüfen
guard funktioniert mit jeder Bool-Bedingung, nicht nur mit Optionals. guard count > 0 else { return } beendet die Ausführung frühzeitig.
func divide(_ a: Int, by b: Int) {
guard b != 0 else {
print("Cannot divide by zero")
return
}
print(a / b)
}
divide(10, by: 2)
divide(10, by: 0)guard in Schleifen
Innerhalb einer Schleife kann guard mit continue zum Überspringen einer Iteration auffordern, wenn Daten fehlen.
let inputs = ["1", "x", "3"]
for item in inputs {
guard let n = Int(item) else { continue }
print(n * 10)
}Mehrere Bindungen in einem guard
Mit einem einzigen guard können Sie mehrere Optionals entpacken, indem Sie sie durch Kommas trennen. Alle müssen erfolgreich sein, damit die Ausführung fortgesetzt wird.
func combine(_ a: String?, _ b: String?) {
guard let a, let b else { return }
print(a + b)
}
combine("foo", "bar")guard mit where-ähnlichen Prüfungen
Sie können nach einer Bindung durch ein Komma Boolesche Bedingungen hinzufügen, um festzulegen, wann die guard-Bedingung erfüllt ist.
func validate(_ text: String?) {
guard let text, !text.isEmpty else {
print("invalid")
return
}
print("ok: \(text)")
}
validate("")
validate("hi")Wann Sie guard wählen sollten
Verwenden Sie guard für Vorbedingungen am Anfang einer Funktion und if let, wenn Sie den Wert nur kurz innerhalb eines Zweigs benötigen.
func area(width: Int?, height: Int?) -> Int {
guard let width, let height else { return 0 }
return width * height
}
print(area(width: 3, height: 4))Kurzer Test
Testen Sie guard let.
Zusammenfassung: guard let für vorzeitiges Beenden
guard let value else { return } entpackt ein Optional und hält den Wert danach im Gültigkeitsbereich. Sein else-Block muss die Ausführung beenden, wodurch der Happy Path flach und gut lesbar bleibt.
func f(_ x: Int?) {
guard let x else { return }
print(x)
}
f(5)Lerne Swift mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 122
- Lektionen
- 409
Häufig gestellte Fragen
Ist die Lektion „guard let für vorzeitiges Beenden“ kostenlos?
Ja — der vollständige Text von „guard let für vorzeitiges Beenden“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „guard let für vorzeitiges Beenden“?
Entpacken Sie Werte und beenden Sie bei einem Fehler frühzeitig, um Verschachtelungen zu reduzieren. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Swift Academy zu starten?
Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „guard let für vorzeitiges Beenden“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?
Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- if let und Kurzform-Bindings
- guard let für vorzeitiges Beenden
- Mehrere Optionals binden
- Optional-Muster in switch und for