2016-01-27 2 views
-1

Хотя чтение официального Apple, Руководство Я нашел этоПочему я могу использовать постоянную инициализацию как условие-условия?

var optionalName: String? = "John Appleseed" 
var greeting = "Hello!" 
if let name = optionalName { 
    greeting = "Hello \(name)" 
} 

Существует постоянную декларация и назначение, где я - как новичок - ожидается выражение возвращающего boolean. Но условие этого оператора if, как представляется, получает true как значение, так как выполняется код внутри круглых скобок.

Выполняет ли инициализация константы значение boolean или что-то такое, что оператор if может использовать в качестве условия?

ответ

0

Это называется необязательным связыванием. Цитирование из основ ->Optionals -> Необязательный раздел привязки Swift Language Guide.

используется опция привязки, чтобы выяснить, необязательная, содержит ли значение , и если это так, чтобы это значение доступно в качестве временной постоянной или переменной. Необязательное связывание может использоваться с операциями if и while для проверки значения внутри необязательного значения и для извлечения этого значения в константу или переменную как часть одного действия.

Что это такое if let Конструкция делает проверку, если someOptional существует. Если это не nil/.None, то оно «связывает» значение «Необязательное» с константой.

if let constantName = someOptional { 
    ... 
} 

Это можно рассматривать как:

if someOptional != nil { 
    let constantName = someOptional! 
    .... 
} 
Смежные вопросы