Sobes.tech
Junior — Middle

Qual è la differenza tra l'uso dei metodi map e compactMap durante l'elaborazione delle collezioni?

sobes.tech AI

Risposta dell'AI

I metodi map e compactMap vengono utilizzati per trasformare gli elementi di una collezione, ma differiscono nel modo in cui gestiscono i valori opzionali.

  • map applica una funzione a tutti gli elementi e restituisce un array con i risultati, inclusi nil se la funzione restituisce un opzionale.
  • compactMap applica la funzione e scarta automaticamente tutti i valori nil, restituendo un array solo con elementi non-nil.

Esempio:

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

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

// compactMap restituisce [Int], ignorando nil
let compactMapped = numbers.compactMap { Int($0) } // [1, 2, 4]

Usa compactMap quando vuoi trasformare e allo stesso tempo eliminare valori non validi o assenti.