Was sind Optionals
Teil des Abschnitts Grundlagen der Swift-Journey von Coddy. Lektion 11 von 86.
Manchmal hat eine Variable möglicherweise gar keinen Wert. In Swift stellen wir das Fehlen eines Werts mithilfe von optionals dar. Ein optional besagt "es gibt einen Wert, und dieser ist gleich x" oder "es gibt überhaupt keinen Wert."
Um ein optional zu deklarieren, füge ein Fragezeichen ? nach dem Typ hinzu:
var nickname: String? = "Alex"
var age: Int? = nilIm Beispiel oben enthält nickname den Wert "Alex", während age den Wert nil enthält — Swifts Art zu sagen, dass kein Wert vorhanden ist. Normale Variablen können nicht nil sein, Optionals hingegen schon.
Stellen Sie sich ein optional wie eine Schachtel vor, die etwas enthalten kann oder leer sein kann. Bevor Sie den Inhalt verwenden, müssen Sie prüfen, ob sich tatsächlich etwas darin befindet. Dies ist ein zentrales Sicherheitsmerkmal in Swift, das hilft, Abstürze durch unerwartet fehlende Werte zu verhindern.
var score: Int? = 100
print(score) // Optional(100)
score = nil
print(score) // nilBeachten Sie, dass beim Drucken eines Optionals mit einem Wert Optional(100) anstelle von nur 100 angezeigt wird. Um auf den tatsächlichen Wert darin zuzugreifen, müssen Sie das Optional entpacken (unwrap) — was wir in den kommenden Lektionen behandeln werden.
Aufgabe
EinfachSchreibe eine Funktion createOptional, die eine Zahl entgegennimmt und einen String zurückgibt, der zeigt, wie diese Zahl aussehen würde, wenn sie als ein Optional gedruckt wird.
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 druckst, das einen Wert enthält, zeigt Swift es im Format Optional(value) an.
Erinnerung 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ückzusenden. 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 Zahl direkt in den String ein.
Parameter:
value(Int): Die Zahl, die im Optional-Format verpackt werden soll
Rückgabe: Ein String im Format Optional(value), wobei value die übergebene Zahl 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 ZuweisungWiederholung - Einfache MathematikVergleichsoperatoren7Grundlagen der Ein- und Ausgabe
Print-FunktionString-InterpolationReadLine-EingabeTypumwandlungWiederholung - Bis 120Wiederholung - Wahr oder Falsch10Funktionen
Eine Funktion deklarierenParameter und ArgumenteRückgabewerteArgument-LabelsWiederholung - Sigma-FunktionWiederholung - ValidierungsfunktionStandardwerte13Iterieren über Sequenzen
Iterieren über ElementeDie enumerate-MethodeIterieren über Strings Teil 1Iterieren über Strings Teil 22Variablen
Let vs. VarTyp-AnnotationenZahlenStringsBooleansBenennungskonventionenZusammenfassung – Variablen initialisieren5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung – Einfache LogikLogische Operatoren Teil 3Ternärer Operator8Rechnungs-Splitter
WillkommensnachrichtEingabe abfragen14Arrays für Fortgeschrittene
Array Slicing Teil 1Array Slicing Teil 2Sequenz-OperatorenDie Contains-Methode3Optionals
Was sind OptionalsUnwrapping mit If LetGuard LetNil-Coalescing-OperatorZusammenfassung – Sicheres Unwrapping6Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher TaschenrechnerSwitch-AnweisungSwitch mit Wertebereichen9Schleifen
For-In-SchleifeWhile-SchleifeRepeat-While-SchleifeBreakContinueWiederholung – FakultätBereiche in SchleifenVerschachtelte SchleifeWiederholung – Dynamische EingabeÜbe selbstständig: Swift-Playground