Sobes.tech
Junior — Middle

Qual é a finalidade do método flatMap e como ele difere do map em fluxos de dados?

sobes.tech IA

Resposta da IA

O método flatMap é usado para transformar os elementos de um fluxo, onde cada elemento pode ser convertido em outro fluxo (ou coleção), e então todos esses fluxos aninhados são combinados em um único fluxo plano. Ao contrário de map, que simplesmente transforma cada elemento em outro elemento, flatMap "desempacota" estruturas aninhadas e as combina.

Exemplo em Swift usando sequências:

let numbers = [1, 2, 3]
// map transforma cada elemento em um array com dois elementos
let mapped = numbers.map { [ $0, $0 * 10 ] }
// mapped: [[1, 10], [2, 20], [3, 30]]

// flatMap combina todos os arrays aninhados em um só
let flatMapped = numbers.flatMap { [ $0, $0 * 10 ] }
// flatMapped: [1, 10, 2, 20, 3, 30]

Assim, flatMap é útil quando o resultado da transformação é uma coleção, e você deseja obter um fluxo único e plano de elementos.