Sobes.tech
Junior — Middle
91

Чем отличается использование методов map и compactMap при обработке коллекций?

Companies where asked
МосбиржаМосбиржа

Answer from AI

sobes.tech AI

Методы map и compactMap используются для преобразования элементов коллекции, но отличаются по обработке опциональных значений.

  • map применяет функцию ко всем элементам и возвращает массив с результатами, включая nil, если функция возвращает опционал.
  • compactMap применяет функцию и автоматически отбрасывает все nil значения, возвращая массив только с не-nil элементами.

Пример:

let numbers = ["1", "2", "three", "4"]

// map возвращает [Int?]
let mapped = numbers.map { Int($0) } // [1, 2, nil, 4]

// compactMap возвращает [Int], отбрасывая nil
let compactMapped = numbers.compactMap { Int($0) } // [1, 2, 4]

Используйте compactMap, когда хотите преобразовать и одновременно избавиться от невалидных или отсутствующих значений.