Junior — Middle
Каква е разликата между използването на методите map и compactMap при обработка на колекции?
sobes.tech AI
Отговор от 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, когато искате да преобразувате и едновременно да премахнете невалидни или липсващи стойности.