Какие методы для работы с коллекциями в Swift ты знаешь?

«Какие методы для работы с коллекциями в Swift ты знаешь?» — вопрос из категории Swift Core, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Swift предоставляет богатый набор методов высшего порядка и утилит для работы с коллекциями (Array, Set, Dictionary).

Основные методы трансформации и фильтрации:

  • map(_:) – преобразует каждый элемент коллекции.
  • filter(_:) – возвращает элементы, удовлетворяющие условию.
  • reduce(_:_:) – объединяет все элементы в одно значение (например, сумму).
  • compactMap(_:) – преобразует элементы, отфильтровывая nil.
  • flatMap(_:) – преобразует и «разворачивает» вложенные коллекции в одну плоскую.
  • forEach(_:) – выполняет действие для каждого элемента (без возврата нового массива).

Пример использования compactMap и map:

let numbers: [Int?] = [1, 2, nil, 4, nil, 6]
let squaredNumbers = numbers.compactMap { $0 }.map { $0 * $0 }
// Результат: [1, 4, 16, 36]

Другие полезные методы:

  • Поиск и проверка: contains(_:), first(where:), allSatisfy(_:).
  • Сортировка: sorted(), sorted(by:).
  • Сегментация: prefix(_:), suffix(_:), dropFirst(_:).
  • Группировка: Dictionary(grouping:by:).

Использование этих методов делает код декларативным, читаемым и часто более эффективным за счет оптимизаций компилятора.