Выбор ответа Junior Опционалы обновлено
Тип результата опциональной цепочки
Вопрос
Какой тип у user?.address?.city.count, если user: User?, address: Address?, а city: String?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Int? Опциональная цепочка «сплющивает» уровни: если любое звено nil, результат всего выражения nil, иначе значение последнего звена, обёрнутое в один опционал. count это Int, значит итог Int?.
Варианты ответа
IntInt??String?Int?правильный ответ
Разбор
Опциональная цепочка «сплющивает» уровни: если любое звено nil, результат всего выражения nil, иначе значение последнего звена, обёрнутое в один опционал. count это Int, значит итог Int?. Двойного опционала не возникает, потому что цепочка не добавляет уровень на каждый ?.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «Опционалы»
- Ранний выход через guard let
- Проваливаемый инициализатор init?
- Паттерн case let x? в Swift
- Способы распаковать опционал в Swift
- Что делает force unwrap
- Разница между guard let и if let
- Implicitly unwrapped optional: где уместен
- Задача на Swift: цепочка руководителей