Menu
Coddy logo textTech

Guard Let

Teil des Abschnitts Grundlagen der Swift-Journey von Coddy — Lektion 13 von 86.

Während if let ein Optional entpackt und Code ausführt, wenn ein Wert existiert, verfolgt guard let den entgegengesetzten Ansatz – es bricht frühzeitig ab, wenn ein Wert fehlt. Dies ist besonders nützlich innerhalb von Funktionen, in denen man den „Fehlerfall“ zuerst behandeln und die Hauptlogik übersichtlich halten möchte.

func greet(name: String?) {
    guard let unwrappedName = name else {
        print("No name provided")
        return
    }
    print("Hello, \(unwrappedName)!")
}

greet(name: "Taylor") // Hallo, Taylor!
greet(name: nil)      // Kein Name angegeben

Die guard let-Anweisung prüft, ob name einen Wert hat. Wenn dies nicht der Fall ist, wird der else-Block ausgeführt und die Funktion mit return beendet. Wenn das Optional einen Wert enthält, wird dieser in unwrappedName entpackt — und hier liegt der entscheidende Unterschied zu if let: Die entpackte Variable bleibt für den Rest der Funktion verfügbar, nicht nur innerhalb eines Blocks.

Dieses „Early Exit“-Muster hält Ihren Code lesbar, indem Fehlerfälle vorab behandelt werden, sodass die Hauptlogik nicht in mehreren if-Anweisungen verschachtelt ist.

challenge icon

Aufgabe

Einfach

Schreiben Sie eine Funktion validateAge, die einen optionalen Parameter age entgegennimmt und guard let verwendet, um diesen sicher zu entpacken.

Wenn das Alter nil ist, geben Sie "Invalid age" zurück. Andernfalls geben Sie "Age: [value]" zurück, wobei [value] das entpackte Alter ist.

Parameter:

  • age (Int?): Eine optionale Ganzzahl, die das Alter einer Person darstellt

Rückgabewert: Ein String — entweder "Invalid age", wenn die Eingabe nil ist, oder "Age: [value]" mit dem entpackten Wert.

Beispiel: Wenn age den Wert 25 hat, geben Sie "Age: 25" zurück. Wenn age nil ist, geben Sie "Invalid age" zurück.

Spickzettel

Verwenden Sie guard let, um ein Optional zu entpacken und frühzeitig abzubrechen, wenn ein Wert fehlt:

func greet(name: String?) {
    guard let unwrappedName = name else {
        print("No name provided")
        return
    }
    print("Hello, \(unwrappedName)!")
}

Die guard let-Anweisung prüft, ob das Optional einen Wert hat. Falls nicht, wird der else-Block ausgeführt und die Funktion mit return verlassen. Wenn das Optional einen Wert enthält, wird dieser entpackt und bleibt für den Rest des Funktionsbereichs verfügbar.

Dieses „Early Exit“-Muster behandelt Fehlerfälle vorab, wodurch die Hauptlogik sauber und nicht eingerückt bleibt.

Probier es selbst

func validateAge(age: Int) -> String {
    // Schreibe hier den Code
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen