Menu
CoddyTech

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 vorhanden ist, verfolgt guard let den umgekehrten Ansatz. Es beendet die Ausführung vorzeitig, wenn ein Wert fehlt. Das ist besonders nützlich in Funktionen, in denen du zuerst den „ungünstigen“ Fall behandeln und die Hauptlogik übersichtlich halten möchtest.

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 Anweisung guard let prüft, ob name einen Wert hat. Wenn nicht, wird der else-Block ausgeführt und die Funktion mit return beendet. Wenn das Optional einen Wert enthält, wird dieser in unwrappedName entpackt. 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 Muster des „frühen Abbruchs“ hält deinen Code lesbar, indem es Fehlerfälle vorab behandelt, sodass die Hauptlogik nicht in mehrere if-Anweisungen verschachtelt ist.

challenge icon

Aufgabe

Einfach

Schreibe eine Funktion validateAge, die einen optionalen Parameter age entgegennimmt und guard let verwendet, um ihn sicher auszupacken.

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

Parameter:

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

Rückgabewert: Eine Zeichenfolge: entweder "Invalid age", wenn die Eingabe nil ist, oder "Age: [value]" mit dem ausgepackten Wert.

Die gesperrten Zeilen unter deiner Funktion lesen das Alter aus der Eingabe (bei einer Eingabe von nil wird nil verwendet) und geben den Rückgabewert deiner Funktion aus.

Beispiel: Wenn age 25 ist, gib "Age: 25" zurück. Wenn age nil ist, gib "Invalid age" zurück.

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

Übe selbstständig: Swift-Playground