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

Оператор ?? в Swift

Вопрос

Чему равно let n = Int("12a") ?? -1?

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

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

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

Коротко

Правильный ответ: -1. Инициализатор Int(: String) проваливаемый (failable) и возвращает Int?: строку "12a" он не разбирает целиком и даёт nil.

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

  1. 12
  2. -1правильный ответ
  3. nil
  4. Ошибка компиляции: Int(_:) не опционален

Разбор

Инициализатор Int(_: String) проваливаемый (failable) и возвращает Int?: строку "12a" он не разбирает целиком и даёт nil. Оператор ?? подставляет значение по умолчанию, поэтому n равно -1 и имеет тип Int, а не Int?. Частичного разбора до 12 нет.

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

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

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