Выбор ответа Junior Опционалы спрашивают часто обновлено

Что делает force unwrap

Вопрос

Что произойдёт при выполнении let x: Int? = nil; print(x!)?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Крэш: «Unexpectedly found nil while unwrapping». ! принудительно распаковывает опционал и при nil вызывает runtime trap, приложение падает.

Варианты ответа

  1. Крэш: «Unexpectedly found nil while unwrapping»правильный ответ
  2. Выведет nil без ошибки
  3. Выведет 0, значение по умолчанию для Int
  4. Ошибка компиляции: x заведомо равен nil, и ! запрещён

Разбор

! принудительно распаковывает опционал и при nil вызывает runtime trap, приложение падает. Компилятор это не ловит, потому что значение известно только во время выполнения. Значений по умолчанию вроде 0 Swift не подставляет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме