Sobes.tech
Junior — Middle

Čime se razlikuje korišćenje metoda map i compactMap prilikom obrade kolekcija?

sobes.tech АИ

Одговор од АИ

Metode map i compactMap koriste se za transformaciju elemenata kolekcije, ali se razlikuju u načinu na koji rukovode opcionalnim vrednostima.

  • map primenjuje funkciju na sve elemente i vraća niz sa rezultatima, uključujući nil ako funkcija vraća opcional.
  • compactMap primenjuje funkciju i automatski odbacuje sve nil vrednosti, vraćajući niz samo sa ne-nil elementima.

Primer:

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

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

// compactMap vraća [Int], ignorišući nil
let compactMapped = numbers.compactMap { Int($0) } // [1, 2, 4]

Koristite compactMap kada želite da transformišete i istovremeno uklonite nevažeće ili nestale vrednosti.