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) // GuestDa 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) // SwiftCoderDer 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.
Aufgabe
EinfachSchreibe 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
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorZusammengesetzte ZuweisungRückblick – Einfache MathematikVergleichsoperatoren7Grundlagen der Ein- und Ausgabe
Print-FunktionString-InterpolationReadLine-EingabeTypkonvertierungWiederholung – Bis 120Wiederholung – Wahr oder falsch10Funktionen
Eine Funktion deklarierenParameter und ArgumenteRückgabewerteArgumentbezeichnungenWiederholung – Sigma-FunktionWiederholung – ValidierungsfunktionStandardwerte13Über Sequenzen iterieren
Über Elemente iterierenDie Enumerate-MethodeÜber Strings iterieren Teil 1Über Strings iterieren Teil 22Variablen
let vs. varTypannotationenZahlenStringBooleanNamenskonventionenRückblick – Variablen initialisieren5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Zusammenfassung – Einfache LogikLogische Operatoren Teil 3Ternärer Operator8Rechner zum Teilen der Rechnung
WillkommensnachrichtEingaben erfassen11FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Funktion14Arrays – Fortgeschritten
Array-Slicing Teil 1Array-Slicing Teil 2SequenzoperatorenDie Contains-Methode3Optionals
Was sind Optionals?Entpacken mit If LetGuard LetNil-Coalescing-OperatorZusammenfassung – Sicheres Entpacken6Entscheidungen treffen
If-AnweisungIf - ElseRückblick – Einfacher TaschenrechnerSwitch-AnweisungSwitch mit Bereichen9Schleifen
For-In-SchleifeWhile-SchleifeRepeat-While-SchleifeBreakContinueZusammenfassung – FakultätBereiche in SchleifenVerschachtelte SchleifeZusammenfassung – Dynamische EingabeÜbe selbstständig: Swift-Playground