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

Тип результата опциональной цепочки

Вопрос

Какой тип у user?.address?.city.count, если user: User?, address: Address?, а city: String?

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

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

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

Коротко

Правильный ответ: Int? Опциональная цепочка «сплющивает» уровни: если любое звено nil, результат всего выражения nil, иначе значение последнего звена, обёрнутое в один опционал. count это Int, значит итог Int?.

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

  1. Int
  2. Int??
  3. String?
  4. Int?правильный ответ

Разбор

Опциональная цепочка «сплющивает» уровни: если любое звено nil, результат всего выражения nil, иначе значение последнего звена, обёрнутое в один опционал. count это Int, значит итог Int?. Двойного опционала не возникает, потому что цепочка не добавляет уровень на каждый ?.

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

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

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