Выбор ответа Junior Опционалы спрашивают часто обновлено
Что делает force unwrap
Вопрос
Что произойдёт при выполнении let x: Int? = nil; print(x!)?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Крэш: «Unexpectedly found nil while unwrapping». ! принудительно распаковывает опционал и при nil вызывает runtime trap, приложение падает.
Варианты ответа
- Крэш: «Unexpectedly found nil while unwrapping»правильный ответ
- Выведет
nilбез ошибки - Выведет
0, значение по умолчанию дляInt - Ошибка компиляции:
xзаведомо равенnil, и!запрещён
Разбор
! принудительно распаковывает опционал и при nil вызывает runtime trap, приложение падает. Компилятор это не ловит, потому что значение известно только во время выполнения. Значений по умолчанию вроде 0 Swift не подставляет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Способы распаковать опционал в Swift
Следующий вопрос
Разница между guard let и if let
Термины по теме
Ещё по теме «Опционалы»
- Тип результата опциональной цепочки
- compactMap и опционалы
- Ранний выход через guard let
- Проваливаемый инициализатор init?
- Паттерн case let x? в Swift
- Implicitly unwrapped optional: где уместен
- Задача на Swift: цепочка руководителей
- Задача на Swift: сумма корректных чисел из ввода