Menu
CoddyTech

Nil-Coalescing-Operator

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

Manchmal möchtest du einfach einen Standardwert angeben, wenn ein Optional nil ist, ohne mehrere Codezeilen zu schreiben. Swift’s 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 den Wert nil hat, gibt der Operator stattdessen "Guest" zurück. Wenn nickname einen Wert hätte, würde dieser verwendet.

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

Der Nil-Coalescing-Operator eignet sich perfekt für Einzeiler, in denen du einen Ersatzwert benötigst. Er ist übersichtlicher als eine if let-Anweisung, wenn du einfach nil durch einen Standardwert ersetzen möchtest. Ist der Standardwert nicht optional, ist auch das Ergebnis nicht optional, sodass du es direkt und ohne weiteres Entpacken verwenden kannst.

challenge icon

Aufgabe

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

Wenn der Benutzername leer ist (dargestellt durch eine leere Zeichenfolge ""), 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 Zeichenfolge steht für nil)
  • defaultName (String): Der Ersatzname, der verwendet werden soll

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

Hinweis: Speichere den Benutzernamen in deiner Funktion in einer String?-Variablen. Wenn der Benutzername "" entspricht, setze diese Variable mit einem einfachen if auf nil. Verwende dann ??, um den Ersatzwert 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