Verificação de existência de elemento em array Swift: melhores práticas 2025

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

🔍 Por que verificar a existência de um elemento em um array Swift? E como fazer isso corretamente em 2025?

\n\n

Imagine: você está escrevendo um aplicativo para pedir pizza. O usuário selecionou "Pepperoni", "Havaiana" e "Margherita". Seu código deve garantir que "Pepperoni" já está no carrinho para não adicionar uma duplicata. Ou você está trabalhando com um banco de dados de clientes e verificando se o email está registrado no sistema. Verificar a existência de um elemento em um array é uma das operações mais comuns no desenvolvimento em Swift.

\n\n

Parece simples, não? Mas em 2025, quando o Swift evolui rapidamente e o desempenho de aplicativos móveis é crítico, escolher o método errado pode custar lentidão na interface do usuário ou horas extras de depuração. Neste artigo, vamos abordar todas as formas de verificar um elemento em um array Swift: desde o simples contains() até closures avançadas e trabalho com tipos personalizados. Você aprenderá qual método escolher para sua tarefa e por quê.

\n\n

A propósito, esta é uma das perguntas mais populares no Stack Overflow (mais de 200.000 visualizações). E daremos uma resposta completa e moderna. Vamos lá! 🚀

\n\n

📦 Arrays em Swift: visão geral básica (para quem tem pressa)

\n\n

Um array (Array) é uma coleção ordenada de elementos do mesmo tipo. Em Swift, os arrays são type-safe, ou seja, você não pode adicionar acidentalmente uma string a um array de números. Isso é tanto uma vantagem (menos bugs) quanto um desafio (é necessário especificar os tipos rigorosamente).

\n\n
let pizzaMenu: [String] = ["Margherita", "Pepperoni", "Havaiana", "Quatro Queijos"]\nlet numbers: [Int] = [1, 2, 3, 4, 5]\n
\n\n

Agora vamos ao principal — como verificar se um elemento existe em um array?

\n\n

🛠️ Top 5 métodos para verificar a existência de um elemento em um array Swift

\n\n

1. contains() — o rei da simplicidade (Equatable)

\n\n

A maneira mais óbvia e frequentemente usada. O método contains(_:) retorna true se o elemento for encontrado. Funciona apenas com tipos que estão em conformidade com o protocolo Equatable (e todos os tipos básicos estão: String, Int, Double, etc.).

\n\n
let pizzas = ["Margherita", "Pepperoni", "Havaiana"]\nif pizzas.contains("Pepperoni") {\n    print("Tem essa pizza!") // ✅ Isso será exibido\n} else {\n    print("Pizza não encontrada")\n}\n
\n\n

Prós: legível, conciso, rápido.

\n

Contras: não funciona se você tiver um objeto complexo (struct/class) sem Equatable.

\n\n

2. contains(where:) — para verificações complexas

\n\n

Se você precisa verificar não uma correspondência exata, mas uma condição (por exemplo, "existe uma pizza mais cara que 500 reais?"), use contains(where:). Ele aceita uma closure que retorna um Bool.

\n\n
struct Pizza {\n    let name: String\n    let price: Int\n}\n\nlet order: [Pizza] = [\n    Pizza(name: "Margherita", price: 450),\n    Pizza(name: "Pepperoni", price: 550),\n    Pizza(name: "Havaiana", price: 500)\n]\n\nlet hasExpensivePizza = order.contains { $0.price > 500 }\nprint("Tem pizza cara? \\(hasExpensivePizza)") // true\n
\n\n

Prós: flexibilidade, funciona com qualquer tipo.

\n

Contras: um pouco mais lento que contains() (mas para 99% dos casos a diferença é imperceptível).

\n\n

3. firstIndex(of:) — quando o índice é importante

\n\n

Às vezes, você não precisa apenas saber se o elemento existe, mas também obter sua posição. Por exemplo, para removê-lo ou substituí-lo. O método firstIndex(of:) retorna um Int? opcional.

\n\n
let pizzas = ["Margherita", "Pepperoni", "Havaiana"]\nif let index = pizzas.firstIndex(of: "Pepperoni") {\n    print("Pepperoni está na posição \\(index)") // 1\n} else {\n    print("Não encontrado")\n}\n
\n\n

Importante: firstIndex também requer Equatable. Se o seu tipo não estiver em conformidade

Blogs

Book Recommendations