Menu
Coddy logo textTech

Nil-Coalescing-Operator

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

Manchmal möchtest du einfach einen Standardwert bereitstellen, wenn ein Optional nil ist, ohne mehrere Codezeilen zu schreiben. Swifts Nil-Coalescing-Operator (??) erledigt genau das. Er entpackt ein Optional, wenn es einen Wert enthält, oder gibt einen Standardwert zurück, wenn es nil ist.

let nickname: String? = nil
let displayName = nickname ?? "Guest"
print(displayName) // Guest

Da nickname nil ist, gibt der Operator stattdessen "Guest" zurück. Wenn nickname einen Wert hätte, würde dieser Wert verwendet.

let username: String? = "SwiftCoder"
let greeting = username ?? "Anonymous"
print(greeting) // SwiftCoder

Der Nil-Koaleszenz-Operator eignet sich perfekt für Einzeiler, bei denen du einen Ersatzwert benötigst. Er ist übersichtlicher, als eine if let-Anweisung zu schreiben, wenn du einfach nil durch einen Standardwert ersetzen möchtest. Das Ergebnis ist immer ein nicht-optionaler Wert, sodass du ihn direkt ohne weiteres Auspacken verwenden kannst.

challenge icon

Aufgabe

Einfach
Schreibe eine Funktion getDisplayName, die einen optionalen username und einen defaultName entgegennimmt und anschließend mithilfe des Nil-Koaleszenzoperators den entsprechenden Anzeigenamen zurückgibt.

Wenn der Benutzername leer ist (dargestellt durch eine leere Zeichenkette ""), behandle ihn als nil und gib den Standardnamen zurück. Andernfalls gib den Benutzernamen zurück.

Parameter:

  • username (String): Der Name des Benutzers (eine leere Zeichenkette steht für nil)
  • defaultName (String): Der als Fallback zu verwendende Name

Rückgabewert: Der Benutzername, wenn er nicht leer ist, andernfalls der defaultName.

Hinweis: Speichere innerhalb deiner Funktion den Benutzernamen in einer String?-Variablen. Wenn der Benutzername "" entspricht, setze diese Variable mit einem einfachen if auf nil. Verwende anschließend ??, um den Fallback bereitzustellen.

Probier es selbst

func getDisplayName(username: String, defaultName: String) -> 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