Карточка Middle Опционалы обновлено
Паттерн case let x? в Swift
Вопрос
Как отфильтровать nil прямо в цикле for?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
for case let x? in optionals { ... }: паттерн x? совпадает только с .some и сразу распаковывает значение.
Ответ
for case let x? in optionals { ... }: паттерн x? совпадает только с .some и сразу распаковывает значение.
Разбор
То же в switch: case let x?: и case nil:. Альтернатива для коллекций: compactMap { $0 }.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Проваливаемый инициализатор init?
Следующий вопрос
Способы распаковать опционал в Swift
Термины по теме
Ещё по теме «Опционалы»
- Тип результата опциональной цепочки
- compactMap и опционалы
- Ранний выход через guard let
- Что делает force unwrap
- Разница между guard let и if let
- Implicitly unwrapped optional: где уместен
- Задача на Swift: цепочка руководителей
- Задача на Swift: сумма корректных чисел из ввода