Sobes.tech
Junior — Middle

Qual é a diferença entre usar os métodos map e compactMap ao processar coleções?

sobes.tech IA

Resposta da IA

Os métodos map e compactMap são usados para transformar elementos de uma coleção, mas diferem na forma como lidam com valores opcionais.

  • map aplica uma função a todos os elementos e retorna um array com os resultados, incluindo nil se a função retornar um opcional.
  • compactMap aplica a função e descarta automaticamente todos os valores nil, retornando um array apenas com elementos não-nil.

Exemplo:

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

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

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

Use compactMap quando desejar transformar e ao mesmo tempo eliminar valores inválidos ou ausentes.