Sobes.tech
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.

  • map aplikuje funkciu na všetky prvky a vracia pole s výsledkami, vrátane nil, ak funkcia vracia voliteľnú hodnotu.
  • compactMap aplikuje funkciu a automaticky odstraňuje všetky nil hodnoty, vracajúc pole len s ne-nil prvkami.

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.