Was sind Optionals?
Teil des Abschnitts Grundlagen der Swift-Journey von Coddy. Lektion 11 von 86.
Manchmal hat eine Variable überhaupt keinen Wert. In Swift stellen wir das Fehlen eines Werts mithilfe von optionals dar. Ein optional sagt: „Es gibt einen Wert, und er ist gleich x“ oder „Es gibt überhaupt keinen Wert.“
Um ein optionales Element zu deklarieren, füge nach dem Typ ein Fragezeichen ? hinzu:
var nickname: String? = "Alex"
var age: Int? = nilIm obigen Beispiel enthält nickname den Wert "Alex", während age nil enthält: Swifts Art zu sagen: „kein Wert“. Reguläre Variablen können nicht nil sein, aber optionale Variablen können es.
Stell dir ein Optional als eine Box vor, die etwas enthalten kann oder leer sein kann. Bevor du das darin Enthaltene verwendest, musst du prüfen, ob tatsächlich etwas darin ist. Dies ist eine wichtige Sicherheitsfunktion in Swift, die hilft, Abstürze aufgrund unerwartet fehlender Werte zu verhindern.
var score: Int? = 100
print(score) // Optional(100)
score = nil
print(score) // nilBeachte, dass beim Ausgeben eines optionalen Werts mit einem Wert Optional(100) statt einfach 100 angezeigt wird. Um auf den tatsächlichen darin enthaltenen Wert zuzugreifen, musst du das optionale Ergebnis entpacken, worauf wir in den kommenden Lektionen eingehen werden.
Aufgabe
EinfachSchreibe eine Funktion createOptional, die eine number entgegennimmt und einen String zurückgibt, der zeigt, wie diese number bei der Ausgabe als optional aussehen würde.
Wichtig: Diese Funktion gibt einen String zurück. Du schreibst Text, der wie ein optional aussieht, du gibst keinen tatsächlichen optional-Wert zurück.
Wenn du ein optional ausgibst, das einen Wert enthält, zeigt Swift es im Format Optional(value) an.
Hinweis zur Funktionssyntax: In Swift verwendet eine Funktion, die einen Wert zurückgibt, den ->-Pfeil, um den Rückgabetyp anzugeben, und das Schlüsselwort return, um das Ergebnis zurückzugeben. Zum Beispiel:
func myFunction(param: Int) -> String {<br> return "result"<br>}
Du kannst den Rückgabestring mithilfe von String-Interpolation erstellen: "Optional(\(value))": Der Teil \(value) fügt die number direkt in den String ein.
Parameter:
value(Int): Die number, die in das optionale Format eingeschlossen werden soll
Rückgabe: Ein String im Format Optional(value), wobei value die bereitgestellte number ist.
Beispiel: Wenn die Eingabe 100 ist, gib "Optional(100)" zurück.
Probier es selbst
func createOptional(value: Int) -> String {
// Gib einen String zurück, der wie ein Optional aussieht, kein echtes Optional
// Füge die Zahl mit String-Interpolation zwischen die Klammern ein
return "Optional()"
}
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