Junior — Middle
Qual è la funzione del metodo flatMap e come si differenzia da map nei flussi di dati?
sobes.tech AI
Risposta dell'AI
Il metodo flatMap viene utilizzato per trasformare gli elementi di un flusso, dove ogni elemento può essere trasformato in un altro flusso (o collezione), e poi tutti questi flussi annidati vengono combinati in un unico flusso piatto. A differenza di map, che trasforma semplicemente ogni elemento in un altro, flatMap "svolge" le strutture annidate e le unisce.
Esempio in Swift con sequenze:
let numbers = [1, 2, 3]
// map trasforma ogni elemento in un array con due elementi
let mapped = numbers.map { [ $0, $0 * 10 ] }
// mapped: [[1, 10], [2, 20], [3, 30]]
// flatMap unisce tutti gli array annidati in uno solo
let flatMapped = numbers.flatMap { [ $0, $0 * 10 ] }
// flatMapped: [1, 10, 2, 20, 3, 30]
Pertanto, flatMap è utile quando il risultato della trasformazione è una collezione e si desidera ottenere un unico flusso piatto di elementi.