Sobes.tech
Junior — Middle

Mis on flatMap meetodi eesmärk ja kuidas see erineb map-ist andmevoogudes?

sobes.tech AI

Vastus AI-lt

flatMap meetodit kasutatakse voolu elementide teisendamiseks, kus iga element võib olla teisendatud teiseks vooluks (või kogumiks), ning seejärel ühendatakse kõik need sisemised voolud üheks tasaseks vooluks. Erinevalt map-ist, mis lihtsalt teisendab iga elementi teiseks, flatMap "lahtipakkib" sisemised struktuurid ja ühendab need.

Näide Swiftis järjestustega:

let numbers = [1, 2, 3]
// map teisendab iga elemendi kaheks elemendiks massiivis
let mapped = numbers.map { [ $0, $0 * 10 ] }
// mapped: [[1, 10], [2, 20], [3, 30]]

// flatMap ühendab kõik sisemised massiivid üheks
let flatMapped = numbers.flatMap { [ $0, $0 * 10 ] }
// flatMapped: [1, 10, 2, 20, 3, 30]

Seega on flatMap kasulik, kui teisendamise tulemus on kogumik ja soovite saada ühe tasase voolu elementidest.