Sobes.tech
Junior — Middle

Czym różni się użycie metod map i compactMap podczas przetwarzania kolekcji?

sobes.tech AI

Odpowiedź od AI

Metody map i compactMap służą do przekształcania elementów kolekcji, ale różnią się w obsłudze wartości opcjonalnych.

  • map stosuje funkcję do wszystkich elementów i zwraca tablicę z wynikami, w tym nil, jeśli funkcja zwraca opcjonalną wartość.
  • compactMap stosuje funkcję i automatycznie odrzuca wszystkie wartości nil, zwracając tablicę tylko z elementami nie-nil.

Przykład:

let numbers = ["1", "2", "three", "4"]

// map zwraca [Int?]
let mapped = numbers.map { Int($0) } // [1, 2, nil, 4]

// compactMap zwraca [Int], odrzucając nil
let compactMapped = numbers.compactMap { Int($0) } // [1, 2, 4]

Używaj compactMap, gdy chcesz przekształcić i jednocześnie usunąć nieprawidłowe lub brakujące wartości.