Latest web development tutorials

Swift optional (Optionals) Typ

Swift optional (Optional) Typ, verwendet werden, wenn fehlende Werte Handhabung. Optional Mittel ", wo es ist ein Wert, und es ist gleich x" oder "kein Wert ist."

Swfit Sprachdefinition Suffix? Optional als benannte Art von Stenographie, mit anderen Worten, sind die beiden folgenden Aussagen äquivalent:

var optionalInteger: Int?
var optionalInteger: Optional<Int>

In beiden Fällen sind die variable optionalInteger optional Integer-Typ. Man beachte, dass in der Art und? Es gibt keinen Raum dazwischen.

Optional ist eine Aufzählung beiden Fällen keine und einige (T) enthält, wird verwendet, um anzuzeigen, kann oder auch nicht Wert. Jede Art kann explizit als (oder implizite Konvertierung) optional Typ deklariert. Wenn Sie eine optionale Art von Zeit zu erklären, müssen Sie Klammern verwenden? Betreiber ein geeigneter Bereich. Zum Beispiel sollte eine optionale Integer-Array-Deklaration, geschrieben werden (Int []);? Geschrieben als Int [] Fehler?.

Wenn Sie deklarieren eine Variable oder optional optional Attribute nicht verfügbar, wenn der Anfangswert, der Standardwert gleich Null.

Optional Folge LogicValue Vereinbarung kann sie in einem Booleschen Kontext erscheinen. In diesem Fall, wenn die optionale Typ T? Jede Art von Wert T enthalten (das seinen Wert zu sagen ist, ist Optional.Some (T)), das optional Typ gleich wahr, sonst ist es falsch.

Wenn eine optionale Instanz eines Typs, der einen Wert enthält, können Sie den Postfix-Operator verwenden! Um den Wert zuzugreifen, wie folgt:

optionalInteger = 42
optionalInteger! // 42

Verwenden Sie Betreiber! Um eine optionale Variable erwerben ist gleich Null wird es werden Laufzeitfehler.

Sie können einen optionalen Link und eine optionale binden verwenden selektiv Operationen auf dem optionalen Ausdruck auszuführen. Wenn der Wert Null ist, werden keine Aktionen durchgeführt, es wird nicht fehlerfrei durchgeführt werden.

Schauen wir uns die folgenden Beispiele einen Blick Swift optional Arten von Anwendungen zu erfahren:

import Cocoa

var myString:String? = nil

if myString != nil {
    print(myString)
}else{
    print("字符串为 nil")
}

Die oben genannten Programmausführung Ergebnisse:

字符串为 nil

Optional Typ ist vergleichbar mit dem Wert von Null-Zeiger in Objective-C, aber nur auf Null Klasse (Klasse) nützlich, aber optional für alle Arten von Typen stehen zur Verfügung, und sicherer zu machen.


Gezwungen zu lösen

Sobald Sie den Typ bestimmen optionale Werte enthält, können Sie optional einen Namen hinter einem Ausrufezeichen (!) Hinzufügen, um den Wert zu bekommen. Das Ausrufezeichen sagte: "Ich weiß, dass es optionale Werte, sie verwenden." Dies ist zwingend optional geparsten Wert (forcierte auspackt) genannt.

Beispiele sind wie folgt:

import Cocoa

var myString:String?

myString = "Hello, Swift!"

if myString != nil {
   print(myString)
}else{
   print("myString 值为 nil")
}

Die oben genannten Programmausführung Ergebnisse:

Optional("Hello, Swift!")

Erzwungene analytische optionale Werte, verwenden Sie das Ausrufezeichen (!):

import Cocoa

var myString:String?

myString = "Hello, Swift!"

if myString != nil {
   // 强制解析
   print( myString! )
}else{
   print("myString 值为 nil")
}

Die oben genannten Programmausführung Ergebnisse:

Hello, Swift!

Hinweis:
Verwenden Sie ! Auf eine nicht vorhandene optionale Werte erhalten wird in einem Laufzeitfehler. Verwenden Sie ! Vor dem analytischen Wert zu erzwingen, müssen Sie bestimmen , gegebenenfalls einen nicht enthalten nil - Wert.


automatisch parsen

Sie können ein Fragezeichen ersetzen, wenn Sie eine Variable optional Ausrufezeichen deklarieren (!) (?). Wenn diese optionale Verwendung von Variablen die Sie nicht benötigen und ein Ausrufezeichen (!), Um den Wert zu erhalten, wird es automatisch analysieren.

Beispiele sind wie folgt:

import Cocoa

var myString:String!

myString = "Hello, Swift!"

if myString != nil {
   print(myString)
}else{
   print("myString 值为 nil")
}

Die oben genannten Programmausführung Ergebnisse:

Hello, Swift!

Optional Bind

Mit den optionalen Bindungen (optional Bindung), um zu bestimmen, ob ein optionaler Typ enthält den Wert, wenn es einen Wert enthält zugewiesen eine temporäre Variable oder Konstante setzen. Optional kann die Bindung, wenn und während Anweisungen verwendet werden, um den Wert eines optionalen Art zu beurteilen, und einen Wert auf eine konstante oder variable zuweisen.

Wie diese if-Anweisung in einer optionalen geschrieben Bindung:

if let constantName = someOptional {
    statements
}

Schauen wir uns eine einfache Alternative Bindung Beispiel aussehen:

import Cocoa

var myString:String?

myString = "Hello, Swift!"

if let yourString = myString {
   print("你的字符串值为 - \(yourString)")
}else{
   print("你的字符串没有值")
}

Die oben genannten Programmausführung Ergebnisse:

你的字符串值为 - Hello, Swift!