Optionals — это тип в Swift, который представляет значение, которое либо существует, либо отсутствует. Они могут содержать корректное значение или nil. Под капотом каждый optional — это enum с двумя вариантами:
case .some(Wrapped) // содержит значение
case .none // представляет nil
Optionals — это центральная часть модели типобезопасности Swift. В Swift тип без optional гарантирует, что значение всегда присутствует — компилятор проверяет это на этапе компиляции, предотвращая неожиданные значения nil, которые могут вызвать краши во время выполнения.
Есть несколько способов безопасно распаковать optional:
if let / guard let) — безопасно распаковывает и присваивает значение, если оно существует??) — подставляет значение по умолчанию, когда встречается nil?.) — безопасно обращается к свойствам или методам optional!) — напрямую распаковывает значение, но крашится, если nilvar name: String? = "Alice"
if let unwrappedName = name {
print("Hello, \(unwrappedName)")
} else {
print("No name provided")
}
Optionals делают возможность отсутствия явной в системе типов. Требуя от разработчиков осознанно обрабатывать nil, Swift устраняет целый класс ошибок, которые распространены в языках, где любое значение может молча быть nil.
Optionals в Swift реализованы как enums с двумя случаями: .some(Wrapped) для присутствующего значения и .none для отсутствия значения.
Новый — ещё не проверен сообществом
Вы