Nachdem wir den optionalen Typ
*** Optional (verpackt) Kurz gesagt, es handelt sich um einen Typ, der entweder einen Wert oder einen leeren Typ darstellt. *** *** Grundsätzlich erlauben schnelle Variablen und Konstanten grundsätzlich kein Null, aber wenn Sie dieses Null verwenden *** Verwenden Sie den optionalen Typ (verpackt)! ***
Zum Beispiel
qiita.rbvar
1.var n: Int
2.
3.print(n)//Error
Wie oben erwähnt, tritt ein Fehler auf, wenn Sie versuchen, einen nicht vorhandenen Wert auszugeben. Hier kommt der optionale (Wrapped) Typ ins Spiel.
qiita.rbvar
1.var n: Optional<Int>
2.
3.print(n)//nil
Wie oben erwähnt, tritt bei Verwendung des optionalen Typs (Wrapped) kein Fehler auf und es wird null ausgegeben.
Auf diese Weise tritt ein Fehler auf, weil das Verhalten *** ist. "Wenn Sie die Daten mit" Optionaler Typ "*** umschließen, wird " Null " zurückgegeben, wenn der Wert nicht vorhanden ist." Kann vermieden werden. Dies ist die grundlegende Verwendung von *** "Optionaler Typ" ***.
Der optionale Typ (Wrapped) hat möglicherweise keinen Wert und kann daher nicht wie eine Variable oder Konstante vom Typ Wrapped behandelt werden. Zum Beispiel Int? Vier Regeln für Typ-zu-Typ-Operationen führen zu einem Fehler.
qiita.rbvar
1.let a: Int? = 1
2.let b: Int? = 1
3.a+b//Error
Auspacken, um diesen Fehler zu vermeiden. Es gibt drei Möglichkeiten zum Auspacken.
O Optionale Bindung ○ ? ?? Operator ○ *** Erzwungenes Auspacken ***
Lassen Sie uns eins nach dem anderen tief graben!
qiita.rbvar
wenn konstanter Name lassen= Optional(Wrapped)Schimmel{
//Anweisung ausgeführt, wenn der Wert vorhanden ist
}
Wie in der obigen Anweisung wird die Anweisung {} ausgeführt, wenn Sie eine if-let-Anweisung verwenden und einen Wrapped-Wert haben. Im folgenden Beispiel gibt es einen Wert in Konstante A, daher wird der Wert der Konstante a vom Typ String zugewiesen und die ausführbare Anweisung wird ausgeführt!
qiita.rbvar
1.let A: Optional("1") //Int-Typ
2.if let A {
print(type(of:1))
//Ausführungsergebnis: Int
}
qiita.rbvar
1.let optionalString:String? = "a"
2.if String = optionalString ?? "b"
//Ausführungsergebnis a
Forced Unwrap ist eine Methode zum erzwungenen Extrahieren des Werts des Typs "Wrapped" aus dem Typ "Optional" (Wrapped). Um ein erzwungenes Auspacken zu machen! Verwenden Sie den Operator. Oben habe ich erwähnt, dass es nicht auf die gleiche Weise wie eine Variable oder Konstante vom Typ Wrapped behandelt werden kann, aber durch erzwungenes Entpacken abgerufen werden kann.
qiita.rbvar
let a : Int? = 1
let b : Int? = 1
a!+b! = //2