Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Swift : hof, map

Какие функции высшего порядка ты знаешь? Сравни map, compactMap, flatMap.

Этот вопрос проверяет знание функций высшего порядка в Swift и понимание различий между map, compactMap и flatMap.

Короткий ответ

Функции высшего порядка принимают или возвращают функции. Основные: map преобразует каждый элемент, compactMap также удаляет nil, а flatMap преобразует и "разворачивает" результат (например, преобразует массив массивов в плоский массив).

Длинный ответ

Функции высшего порядка позволяют писать более декларативный и выразительный код.

1. map:

  • Применяет функцию к каждому элементу коллекции и возвращает новую коллекцию.

  • Не меняет тип элемента.

2. compactMap:

  • Как map, но также фильтрует nil значения.

  • Полезно для безопасного преобразования.

3. flatMap:

  • Преобразует каждый элемент и "разворачивает" результат (например, если преобразование возвращает массив, flatMap сделает его плоским).

  • В последних версиях Swift заменён на compactMap для удаления nil и flatMap для разворачивания.

Пример:

let numbers = ["1", "2", "three"]
let mapped = numbers.map { Int($0) } // [Optional(1), Optional(2), nil]
let compactMapped = numbers.compactMap { Int($0) } // [1, 2]
let nested = [[1, 2], [3, 4]]
let flatMapped = nested.flatMap { $0 } // [1, 2, 3, 4]
  • Аватар

    iOS Guru

    Roman Isakov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • Swift

    Swift

Ключевые слова

#hof

#map

Подпишись на iOS Developer в телеграм

  • Аватар

    iOS Guru

    Roman Isakov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.