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.
maptaiko funkciją visiems elementams ir grąžina rezultatų masyvą, įskaitantnil, jei funkcija grąžina pasirinktą reikšmę.compactMaptaiko funkciją ir automatiškai atmeta visusnilreikšmes, grąžindamas tik sunon-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.