Junior — Middle
Kokia yra flatMap metodo paskirtis ir kaip jis skiriasi nuo map duomenų srautų?
sobes.tech AI
Atsakymas iš AI
flatMap metodas naudojamas elementų srauto transformacijai, kur kiekvienas elementas gali būti paverstas į kitą srautą (arba kolekciją), o tada visi šie įdėti srautai sujungiami į vieną plokščią srautą. Skirtingai nuo map, kuris paprastai paverčia kiekvieną elementą į kitą elementą, flatMap "išpakuoja" įdėtus struktūras ir jas sujungia.
Pavyzdys Swift kalba su sekvencijomis:
let numbers = [1, 2, 3]
// map paverčia kiekvieną elementą į dviejų elementų masyvą
let mapped = numbers.map { [ $0, $0 * 10 ] }
// mapped: [[1, 10], [2, 20], [3, 30]]
// flatMap sujungia visus įdėtus masyvus į vieną
let flatMapped = numbers.flatMap { [ $0, $0 * 10 ] }
// flatMapped: [1, 10, 2, 20, 3, 30]
Todėl flatMap yra naudingas, kai transformacijos rezultatas yra kolekcija ir norite gauti vieną plokščią elementų srautą.