[SWIFT] Lassen Sie uns den optionalen (verpackten) Typ verstehen!

Nachdem wir den optionalen Typ kennengelernt haben, geben wir ihn aus.

Was ist der optionale (verpackte) 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" ***.

Was ist optionales (gewickeltes) Auspacken?

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!

Was ist eine optionale Bindung?

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

}

Was ist der ?? Betreiber?

qiita.rbvar


1.let optionalString:String? = "a"
2.if String = optionalString ?? "b"

//Ausführungsergebnis a

Was wird zum Auspacken gezwungen?

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

Recommended Posts

Lassen Sie uns den optionalen (verpackten) Typ verstehen!
Lassen Sie uns die Funktion verstehen!
Lassen Sie uns die if-Anweisung verstehen!
Lassen Sie uns die For-In-Anweisung verstehen!
Java Optionaler Typ
Lassen Sie uns die Schließung verstehen!
Lassen Sie uns die Sicherheitsanfälligkeit (1) OS Command Injection (OGNL Type Injection) angreifen.
null gibt den Typ an
Lassen Sie uns die App verbessern
Versuchen wir das S2 Struts Tutorial (# 3_180425)
Verstehen Sie die Hilfsmethode form_with
Probieren wir das S2Struts-Tutorial aus (# 5_180526).
Probieren wir das S2Struts-Tutorial aus (# 4_180505).
Über die Erklärung zum Funktionstyp
Lösen wir das FizzBuzz-Problem!
Probieren wir das S2Struts-Tutorial aus (# 2_180424).
[Android / Java] Verstehen Sie den Beschreibungstyp in den Listener-Einstellungen (Schaltflächeninstallation).