Junior — Middle
Koja je svrha metode flatMap i kako se razlikuje od map u tokovima podataka?
sobes.tech АИ
Одговор од АИ
Metoda flatMap se koristi za transformaciju elemenata toka, gde svaki element može biti transformisan u drugi tok (ili kolekciju), a zatim se svi ti ugnježdeni tokovi kombinuju u jedan ravni tok. Za razliku od map, koji jednostavno transformiše svaki element u drugi, flatMap "raspakiva" ugnježdene strukture i ih spaja.
Primer u Swift-u sa sekvencama:
let numbers = [1, 2, 3]
// map transformiše svaki element u niz sa dva elementa
let mapped = numbers.map { [ $0, $0 * 10 ] }
// mapped: [[1, 10], [2, 20], [3, 30]]
// flatMap spaja sve ugnježdene nizove u jedan
let flatMapped = numbers.flatMap { [ $0, $0 * 10 ] }
// flatMapped: [1, 10, 2, 20, 3, 30]
Dakle, flatMap je koristan kada je rezultat transformacije kolekcija, i želite da dobijete jedan ravni tok elemenata.