Sobes.tech
Junior — Middle

V čem se liší použití metod map a compactMap při zpracování kolekcí?

sobes.tech AI

Odpověď od AI

Metody map a compactMap se používají k transformaci prvků kolekce, ale liší se v tom, jak zacházejí s volitelnými hodnotami.

  • map aplikuje funkci na všechny prvky a vrací pole s výsledky, včetně nil, pokud funkce vrací volitelnou hodnotu.
  • compactMap aplikuje funkci a automaticky odstraňuje všechny nil hodnoty, vracející pole pouze s nenulovými prvky.

Příklad:

let numbers = ["1", "2", "three", "4"]

// map vrací [Int?]
let mapped = numbers.map { Int($0) } // [1, 2, nil, 4]

// compactMap vrací [Int], ignorujíc nil
let compactMapped = numbers.compactMap { Int($0) } // [1, 2, 4]

Použijte compactMap, když chcete transformovat a současně odstranit neplatné nebo chybějící hodnoty.