Junior — Middle
Mi a különbség a map és a compactMap módszerek használata között kollekciók feldolgozásakor?
sobes.tech MI
Válasz az MI-től
A map és compactMap módszerek kollekciók elemeinek átalakítására szolgálnak, de különböznek abban, hogyan kezelik az opcionális értékeket.
- A
mapminden elemre alkalmaz egy függvényt, és eredményként egy tömböt ad vissza, beleértve anil-t is, ha a függvény opcionális értéket ad vissza. - A
compactMapalkalmazza a függvényt, és automatikusan elveti az összesnilértéket, csak a nem-nilelemekből álló tömböt adva vissza.
Példa:
let numbers = ["1", "2", "three", "4"]
// map [Int?] eredményt ad
let mapped = numbers.map { Int($0) } // [1, 2, nil, 4]
// compactMap [Int], amely elveti a nil értékeket
let compactMapped = numbers.compactMap { Int($0) } // [1, 2, 4]
Használja a compactMap-et, amikor átalakítást szeretne végrehajtani, miközben eltávolítja az érvénytelen vagy hiányzó értékeket.