Junior — Middle
90
Чем отличается использование методов map и compactMap при обработке коллекций?
Компании, где спрашивали
Ответ от нейросети
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, когда хотите преобразовать и одновременно избавиться от невалидных или отсутствующих значений.