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.
mapaplica uma função a todos os elementos e retorna um array com os resultados, incluindonilse a função retornar um opcional.compactMapaplica a função e descarta automaticamente todos os valoresnil, 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.