2016-11-06 4 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) 
} 

печати (greeting1) дает:Swift разворачивания факультативной условного

"Здравствуйте, факультативный (" Цюань ") \ п"

печати (greeting2) дает:

"Hello, QUAN \ n"

Может ли кто-нибудь помочь мне объяснить причины разницы? Благодаря!

+3

Поиск «необязательного связывания» в справочной системе Swift. –

+0

Связанные: http://stackoverflow.com/questions/29717210/when-should-i-compare-an-optional-value-to-nil, http://stackoverflow.com/questions/33769366/why-use-optional -связывающего, –

ответ

0

Если ваше значение является необязательным (?), Это означает, что не должно быть значения (оно может быть пустым и нет ошибки). Если у вас есть значение non-optional, ваш код не удастся. Существует статья из яблока об этом: https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/OptionalChaining.html

Это то, что яблоко говорит о дополнительных опциях:

Дополнительного сцепление представляет собой процесс для запроса и вызова свойства, методы и индексов на факультативном, которые могли бы в настоящее время быть ноль.

 Смежные вопросы

  • Нет связанных вопросов^_^