Sobes.tech
Junior — Middle

Каква е целта на метода flatMap и как се различава от map в потоците от данни?

sobes.tech AI

Отговор от AI

Методът flatMap се използва за преобразуване на елементите на поток, където всеки елемент може да бъде преобразуван в друг поток (или колекция), а след това всички тези вложени потоци се обединяват в един плосък поток. За разлика от map, който просто преобразува всеки елемент в друг, flatMap "разопакова" вложените структури и ги обединява.

Пример на Swift с последователности:

let numbers = [1, 2, 3]
// map преобразува всеки елемент в масив с два елемента
let mapped = numbers.map { [ $0, $0 * 10 ] }
// mapped: [[1, 10], [2, 20], [3, 30]]

// flatMap обединява всички вложени масиви в един
let flatMapped = numbers.flatMap { [ $0, $0 * 10 ] }
// flatMapped: [1, 10, 2, 20, 3, 30]

Следователно, flatMap е полезен, когато резултатът от преобразуването е колекция и искате да получите един плосък поток от елементи.