Sobes.tech
Junior — Middle

Kuo skiriasi map ir compactMap metodų naudojimas kolekcijų apdorojimui?

sobes.tech AI

Atsakymas iš AI

map ir compactMap metodai naudojami kolekcijos elementų transformavimui, tačiau skiriasi tuo, kaip tvarko pasirinktines reikšmes.

  • map taiko funkciją visiems elementams ir grąžina rezultatų masyvą, įskaitant nil, jei funkcija grąžina pasirinktą reikšmę.
  • compactMap taiko funkciją ir automatiškai atmeta visus nil reikšmes, grąžindamas tik su non-nil` elementais masyvą.

Pavyzdys:

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

// `map` grąžina [Int?]
let mapped = numbers.map { Int($0) } // [1, 2, nil, 4]

// `compactMap` grąžina [Int], atmestų `nil`
let compactMapped = numbers.compactMap { Int($0) } // [1, 2, 4]

Naudokite compactMap, kai norite transformuoti ir tuo pačiu metu pašalinti nevalidias ar trūkstamas reikšmes.