2016-11-06 6 views
-1
var optionalname: String? = "QUAN" 

let name1 = optionalname 

var greeting1 = "Hello, \(name1)" 

print(greeting1) 

if let name2 = optionalname { 
    var greeting2 = "Hello, \(name2)" 
    print(greeting2) 
} 

print (greeting1) ergibt:Swift Abwickeln optional in bedingten

"Hallo, Optional (" QUAN ") \ n"

print (Greeting2) ergibt:

"Hallo, QUAN \ n"

Kann mir jemand helfen, die Gründe für den Unterschied zu erklären? Vielen Dank!

+3

Lookup "optionale Bindung" in der Swift Referenz. –

+0

Verwandte: http://stackoverflow.com/questions/29717210/when-should-i-compare-an-optional-value-to-nil, http://stackoverflow.com/questions/33769366/why-use-optional -Bindung, –

Antwort

0

Wenn Ihr Wert optional ist (?) Es bedeutet, dass es keinen Wert sein muss (Es kann leer sein, und es ist kein Fehler). Wenn Sie einen leeren Wert von non-optional haben, wird Ihr Code fehlschlagen. Es gibt einen Artikel aus Apfel dazu: https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/OptionalChaining.html

Dies ist, was über optionals Apfel sagt:

Optional Verkettungs ist ein Verfahren zur Abfrage und ruft Eigenschaften, Methoden und Indizes auf einer optionalen das könnte zur Zeit sei nichts.