Junior — Middle
Aký je účel metódy flatMap a ako sa líši od map v dátových tokoch?
sobes.tech AI
Odpoveď od AI
Metóda flatMap sa využíva na transformáciu prvkov toku, kde každý prvok môže byť transformovaný na iný tok (alebo kolekciu), a potom sa všetky tieto zanořené toky spoja do jedného plochého toku. Na rozdiel od map, ktorý jednoducho transformuje každý prvok na iný, flatMap "rozbalí" zanořené štruktúry a spojí ich.
Príklad v Swift s sekvenciami:
let numbers = [1, 2, 3]
// map transformuje každý prvok na pole so dvoma prvkami
let mapped = numbers.map { [ $0, $0 * 10 ] }
// mapped: [[1, 10], [2, 20], [3, 30]]
// flatMap spojí všetky zanořené polia do jedného
let flatMapped = numbers.flatMap { [ $0, $0 * 10 ] }
// flatMapped: [1, 10, 2, 20, 3, 30]
Preto je flatMap užitočný, keď je výsledkom transformácie kolekcia a chcete získať jeden plochý tok prvkov.