DEV Community

Felipe Carvalho
Felipe Carvalho

Posted on • Edited on

🚀 Swift Tip: `for` vs `filter` para Filtragem de Listas

Ao trabalhar com arrays no Swift, você já se perguntou qual é a maneira mais performática de filtrar elementos? 🤔
Vamos ver um exemplo simples:

Temos duas formas de filtrar palavras com mais de 5 letras

1️⃣ Usando um loop for:

func moreThanFiveLetters(wordList: [String]) -> [String] {
    var result = [String]()
    result.reserveCapacity(wordList.count)
    for word in wordList {
        if word.count > 5 {
            result.append(word)
        }
    }
    return result
}
Enter fullscreen mode Exit fullscreen mode

2️⃣ Usando filter:


func moreThanFiveLetters(wordList: [String]) -> [String] {
    wordList.filter { $0.count > 5 }
}
Enter fullscreen mode Exit fullscreen mode

🔹 Qual é mais rápido?

Para listas pequenas, a diferença é quase imperceptível. Mas em listas maiores, a versão com for pode ser ligeiramente mais rápida se usarmos reserveCapacity.
Isso evita redimensionamentos repetidos do array enquanto ele é preenchido, otimizando o desempenho.

🔹 Conclusão:

Se você valoriza elegância e legibilidade, filter é uma escolha excelente.
Se está lidando com listas grandes e busca desempenho máximo, um loop for com reserveCapacity pode ser a melhor aposta.

👉 Escolha a abordagem que equilibra clareza e performance para o seu caso!

Sabemos que em programação há várias formas de implementar a resolução de um problema, como melhoraria essa?

Siga meu Instagram
Ou conecte LinkedIn

Top comments (0)