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
}
2️⃣ Usando filter:
func moreThanFiveLetters(wordList: [String]) -> [String] {
wordList.filter { $0.count > 5 }
}
🔹 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?
Top comments (0)