Junior — Middle
Jaki jest cel metody flatMap i jak różni się od map w strumieniach danych?
sobes.tech AI
Odpowiedź od AI
Metoda flatMap jest używana do przekształcania elementów strumienia, gdzie każdy element może zostać przekształcony w inny strumień (lub kolekcję), a następnie wszystkie te zagnieżdżone strumienie są łączone w jeden płaski strumień. W przeciwieństwie do map, które po prostu przekształca każdy element w inny element, flatMap "rozpakowuje" zagnieżdżone struktury i łączy je.
Przykład w Swift z użyciem sekwencji:
let numbers = [1, 2, 3]
// map przekształca każdy element w tablicę z dwoma elementami
let mapped = numbers.map { [ $0, $0 * 10 ] }
// mapped: [[1, 10], [2, 20], [3, 30]]
// flatMap łączy wszystkie zagnieżdżone tablice w jedną
let flatMapped = numbers.flatMap { [ $0, $0 * 10 ] }
// flatMapped: [1, 10, 2, 20, 3, 30]
Dlatego flatMap jest przydatny, gdy wynik przekształcenia jest kolekcją, i chcesz uzyskać jeden płaski strumień elementów.