- 15.01.2015 11:48
- ← Назад к списку
Опционалы в Swift используются в случаях, когда значение может отсутствовать. Опционалы Swift позволяют указать отсутствие значения для абсолютно любого типа, без необходимости использования специальных констант. Опционал подразумевает:
- Значение существует, и оно равно x
- Значение не существует вовсе.
Если значение константы или переменной при определенных условиях в коде должно когда-нибудь отсутствовать, всегда объявляйте их как опциональное значение соответствующего типа. В Swift nil
не является указателем, а является отсутствием значения определенного типа. Устанавливаться в nil
могут опционалы любого типа, а не только типы объектов.
Знак вопроса означает, что содержащееся в ней значение является опциональным. Можно использовать оператор if
, сравнивая опционал с nil
:
if myVar != nil { ... } // Принудительное извлечение значения опционала // Попытка использовать ! к несуществующему опциональному значению вызовет runtime ошибку. println("myVar точно не nil: \(myVar!).")
Привязка опционалов может использоваться с операторами if и while, для проверки значения внутри опционала, и извлечения этого значения в константу или переменную, в рамках одного действия:
if let number = strNumber.toInt() { ... }
Иногда, сразу понятно из структуры программы, что опционал всегда будет иметь значение, поэтому полезно избавиться от проверки и извлечения значения опционала каждый раз при обращении к нему. Такие опционалы называются неявно извлеченные опционалы, они описываются с помощью восклицательного знака вместо вопросительного. Если вы попытаетесь получить доступ к неявно извлеченному опционалу когда он не содержит значения - вы получите runtime ошибку.