Junior — Middle
Wyjaśnij zasadę działania metody Flat Map i jej różnicę w porównaniu z zwykłą Map podczas przetwarzania kolekcji danych.
sobes.tech AI
Odpowiedź od AI
Metoda map przekształca każdy element kolekcji, stosując funkcję, i zwraca tablicę wyników. Jeśli funkcja zwraca kolekcję, wynikiem będzie tablica kolekcji.
flatMap najpierw stosuje funkcję do każdego elementu, jak map, ale następnie "spłaszcza" (flatten) zagnieżdżone kolekcje w jedną płaską tablicę.
Przykład:
let numbers = [1, 2, 3]
// map z funkcją zwracającą tablicę
let mapped = numbers.map { Array(repeating: $0, count: $0) }
// mapped = [[1], [2, 2], [3, 3, 3]]
// flatMap z tą samą funkcją
let flatMapped = numbers.flatMap { Array(repeating: $0, count: $0) }
// flatMapped = [1, 2, 2, 3, 3, 3]
Dlatego flatMap jest przydatny, gdy funkcja zwraca kolekcję, a my chcemy uzyskać jedną płaską tablicę bez zagnieżdżonych tablic.