Junior — Middle
Aký je rozdiel medzi používaním metód map a compactMap pri spracovaní kolekcií?
sobes.tech AI
Odpoveď od AI
Metódy map a compactMap sa používajú na transformáciu prvkov kolekcie, ale líšia sa v tom, ako zaobchádzajú s voliteľnými hodnotami.
mapaplikuje funkciu na všetky prvky a vracia pole s výsledkami, vrátanenil, ak funkcia vracia voliteľnú hodnotu.compactMapaplikuje funkciu a automaticky odstraňuje všetkynilhodnoty, vracajúc pole len s ne-nilprvkami.
Príklad:
let numbers = ["1", "2", "three", "4"]
// map vracia [Int?]
let mapped = numbers.map { Int($0) } // [1, 2, nil, 4]
// compactMap vracia [Int], ignorujúc nil
let compactMapped = numbers.compactMap { Int($0) } // [1, 2, 4]
Použite compactMap, keď chcete transformovať a súčasne odstrániť neplatné alebo chýbajúce hodnoty.