Выбор ответа Junior Опционалы спрашивают часто обновлено
compactMap и опционалы
Вопрос
Что вернёт ["1", "x", "3"].compactMap { Int($0) }?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: [1, 3]. compactMap вызывает замыкание для каждого элемента и отбрасывает nil, а остальные значения распаковывает.
Варианты ответа
[1, nil, 3][1, 3]правильный ответ[Optional(1), Optional(3)]- Ничего: код упадёт на
"x"
Разбор
compactMap вызывает замыкание для каждого элемента и отбрасывает nil, а остальные значения распаковывает. Массив с nil вернул бы map. Падения нет: Int("x") просто возвращает nil.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «Опционалы»
- Проваливаемый инициализатор init?
- Паттерн case let x? в Swift
- Способы распаковать опционал в Swift
- Что делает force unwrap
- Разница между guard let и if let
- Implicitly unwrapped optional: где уместен
- Задача на Swift: цепочка руководителей
- Задача на Swift: сумма корректных чисел из ввода