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) // GuestDa 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) // SwiftCoderDer 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.
Aufgabe
EinfachSchreibe 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
}
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