Menu
Coddy logo textTech

Nil-Coalescing-Operator

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

Manchmal möchten Sie einfach einen Standardwert bereitstellen, wenn ein Optional nil ist, ohne mehrere Codezeilen schreiben zu müssen. Swifts Nil-Coalescing-Operator (??) macht genau das – er entpackt ein Optional, wenn es einen Wert hat, 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 werden.

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

Der Nil-Coalescing-Operator ist perfekt für Einzeiler, bei denen Sie einen Ersatzwert benötigen. Er ist sauberer, als eine if let-Anweisung zu schreiben, wenn Sie einfach nil durch einen Standardwert ersetzen möchten. Das Ergebnis ist immer ein Nicht-Optional-Wert, sodass Sie ihn direkt ohne weiteres Entpacken verwenden können.

challenge icon

Aufgabe

Einfach

Schreiben Sie eine Funktion getDisplayName, die einen optionalen username und einen defaultName entgegennimmt und dann den entsprechenden Anzeigenamen unter Verwendung des Nil-Coalescing-Operators zurückgibt.

Wenn der Benutzername leer ist (dargestellt durch einen leeren String ""), behandeln Sie ihn als nil und geben Sie den Standardnamen zurück. Andernfalls geben Sie den Benutzernamen zurück.

Parameter:

  • username (String): Der Name des Benutzers (ein leerer String repräsentiert nil)
  • defaultName (String): Der Fallback-Name, der verwendet werden soll

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

Hinweis: Konvertieren Sie den Benutzernamen innerhalb Ihrer Funktion in ein Optional — wenn er leer ist, machen Sie ihn zu nil. Verwenden Sie dann ??, um den Fallback bereitzustellen.

Spickzettel

Der Nil-Coalescing-Operator (??) entpackt ein Optional, wenn es einen Wert hat, oder gibt einen Standardwert zurück, wenn es nil ist:

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

Wenn das Optional einen Wert hat, wird stattdessen dieser Wert verwendet:

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

Das Ergebnis ist immer ein Nicht-Optional-Wert, was es für einfache Fallback-Szenarien sauberer macht als if let.

Probier es selbst

func getDisplayName(username: String, defaultName: String) -> String {
    // Hier Code schreiben
}
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