Int ohne Wert (setzen Sie int, um keinen Wert)
Ich will ein Int, das keinen Wert hat (eine bereits existierende variable). Wenn ich dies tun;
number = Int()
dann hat es noch den Wert 0
. Ich will nichts, einen nicht vorhandenen Wert.
- Der einzige Weg ist eine optionale
Int?
- Sie müssen die Optionen: developer.apple.com/library/ios/documentation/Swift/Conceptual/...
var number: Int?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Jeder Typ kann festgelegt werden, auf einen leeren Wert aka
nil
!Erstellen Sie eine variable, die gesetzt werden können, um
nil
Sie schreiben müssen, der Typ-name ausdrücklich mit einem?
oder!
(ich werde sprechen über den Unterschied später) am Ende.Zum Beispiel, wenn Sie möchten, eine
Int
eingestellt werden können, umnil
deklarieren Sie eine variable mit dem Typ-name:und fügen Sie dann eine
?
:Dann, können Sie
myInt
zunil
oder was auch immer Werte, die Sie möchten:Typ-name-mit-? notation ist bekannt als "Optionale Typen" in Swift.
Können Sie nicht nur Optionen in der Variablen und Konstanten, Sie können es auch verwenden, in der Methode/Funktion Unterschriften:
Okay, also, was ist der Unterschied zwischen
!
und?
?!
wirkt wie Referenz-Typen in Java und C#. Und?
ist wie eine sicherere version von!
.Sagen wir mal es gibt eine optionale
Int
genanntmyInt
. Sie wollen den Zugriff auf Ihredescription
.Wenn
myInt
deklariert wurden, alslet myInt: Int?
,Wenn
myInt
deklariert wurden, alslet myInt: Int!
Beachten Sie, dass mit dem Fragezeichen, müssen Sie ein Fragezeichen am Ende jedes mal müssen Sie Zugriff auf die Eigenschaft/Methode von
myInt
. Dies wird als "Unwrapping Typ".Einen Typ mit
!
suffix wird als "Implizit Unwrapped Optional Typ". Beim arbeiten mit diesen Typen, die Sie nicht brauchen, um es Auspacken. Allerdings, wennmyInt
istnil
, gibt es einen Fehler! Dies geschieht nicht mit?
Typen, weil der ganze Ausdruck wird nur zurücknil
wennmyInt
istnil
.Das ist nur etwas, denke ich, sollten Sie beachten, wenn Sie mit Optionen das erste mal.
Benötigen Sie eine Optionale
Int
. Indem Sie eine Frage '?' Zeichen, das Sie initialisieren, die varaible von null.Siehe diesen link für weitere details
https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html