Sobes.tech
Junior — Middle

Jaký je účel metody flatMap a jak se liší od map v datových tocích?

sobes.tech AI

Odpověď od AI

Metoda flatMap se používá k transformaci prvků proudu, kde každý prvek může být převeden na jiný proud (nebo kolekci), a poté jsou všechny tyto zanořené proudy sloučeny do jednoho plochého proudu. Na rozdíl od map, který jednoduše transformuje každý prvek na jiný, flatMap "rozbalí" zanořené struktury a spojí je.

Příklad v Swift s posloupnostmi:

let numbers = [1, 2, 3]
// map transformuje každý prvek na pole se dvěma prvky
let mapped = numbers.map { [ $0, $0 * 10 ] }
// mapped: [[1, 10], [2, 20], [3, 30]]

// flatMap spojí všechny zanořené pole do jednoho
let flatMapped = numbers.flatMap { [ $0, $0 * 10 ] }
// flatMapped: [1, 10, 2, 20, 3, 30]

Proto je flatMap užitečný, když je výsledkem transformace kolekce a chcete získat jeden plochý proud prvků.