Выбор ответа Middle Опционалы обновлено
map и flatMap у Optional
Вопрос
Какой тип у Optional("42").flatMap { Int($0) }?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Int? Optional.map применяет замыкание к содержимому: замыкание Int($0) возвращает Int?, и map дал бы Int??. flatMap ожидает замыкание, возвращающее опционал, и не добавляет лишний уровень, поэтому Int?.
Варианты ответа
Int??[Int]Int?правильный ответInt
Разбор
Optional.map применяет замыкание к содержимому: замыкание Int($0) возвращает Int?, и map дал бы Int??. flatMap ожидает замыкание, возвращающее опционал, и не добавляет лишний уровень, поэтому Int?. Массив получается от flatMap/compactMap у последовательностей, а не у Optional.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Задача на Swift: безопасный доступ к массиву по индексу
Следующий вопрос
Оператор ?? в Swift