Sobes.tech
Junior — Middle

Kāda ir flatMap metodes nozīme un kā tā atšķiras no map datu plūsmās?

sobes.tech AI

Atbilde no AI

flatMap metode tiek izmanto, lai pārveidotu straumes elementus, kur katrs elements var tikt pārveidots citā straumē (vai kolekcijā), un pēc tam visi šie iekšējie straumi tiek apvienoti vienā plakanā straumē. Atšķirībā no map, kas vienkārši pārveido katru elementu citā elementā, flatMap "izpako" iekšējās struktūras un tās apvieno.

Piemērs Swift ar secībām:

let numbers = [1, 2, 3]
// map pārveido katru elementu par divu elementu masīvu
let mapped = numbers.map { [ $0, $0 * 10 ] }
// mapped: [[1, 10], [2, 20], [3, 30]]

// flatMap apvieno visus iekšējos masīvus vienā
let flatMapped = numbers.flatMap { [ $0, $0 * 10 ] }
// flatMapped: [1, 10, 2, 20, 3, 30]

Tādēļ flatMap ir noderīgs, ja pārveidojuma rezultāts ir kolekcija un vēlaties iegūt vienu plakanāku elementu straumi.