0Pricing
Swift Academy · Aula

filter e Predicados

Selecione os elementos que satisfazem uma condição.

filter e Predicados é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Swift Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Swift Academy inclui 4 aulas no total.

O que é filter?

filter mantém apenas os elementos para os quais um fechamento (um predicado) retorna true.

  • O fechamento retorna um Bool
  • O tipo dos elementos permanece o mesmo
  • O resultado é um novo vetor, possivelmente menor

Um filter simples

Mantenha apenas os números pares:

let numbers = [1, 2, 3, 4, 5, 6]
let evens = numbers.filter { $0 % 2 == 0 }
print(evens)  // [2, 4, 6]

Filtrando strings

Mantenha as palavras com mais de três caracteres:

let words = ["hi", "swift", "go", "filter"]
let long = words.filter { $0.count > 3 }
print(long)  // ["swift", "filter"]

O que é um predicado?

Um predicado é simplesmente uma função que recebe um valor e retorna um Bool. filter chama seu predicado uma vez por elemento e mantém o valor quando o predicado é true.

Dando nome a um predicado

Os predicados podem ser armazenados e reutilizados para melhorar a legibilidade:

let isPositive: (Int) -> Bool = { $0 > 0 }
let data = [-2, 5, -1, 8]
print(data.filter(isPositive))  // [5, 8]

Combinando condições

Use operadores booleanos dentro do predicado:

let nums = [1, 2, 3, 4, 5, 6, 7, 8]
let picked = nums.filter { $0 % 2 == 0 && $0 > 4 }
print(picked)  // [6, 8]

Filtrando estruturas

Filtre uma coleção de objetos de modelo por uma propriedade:

struct Product { let name: String; let price: Int }
let items = [Product(name: "Pen", price: 2), Product(name: "Bag", price: 40)]
let cheap = items.filter { $0.price < 10 }
print(cheap.map { $0.name })  // ["Pen"]

filter e map

Eles respondem a perguntas diferentes: filter escolhe quais elementos permanecem; map altera cada elemento. Os tipos dos resultados são diferentes:

let n = [1, 2, 3, 4]
print(n.filter { $0 > 2 })  // [3, 4]  (subset, same type)
print(n.map { $0 > 2 })     // [false, false, true, true]

Encadeando filter e map

Filtre primeiro para reduzir o trabalho e depois transforme:

let nums = [1, 2, 3, 4, 5, 6]
let result = nums
    .filter { $0 % 2 == 0 }
    .map { $0 * $0 }
print(result)  // [4, 16, 36]

Contando sem manter os elementos

Se você precisa apenas de uma contagem, filter(...).count funciona, mas count(where:) evita criar um vetor:

let votes = [true, false, true, true]
let yes = votes.filter { $0 }.count
print(yes)  // 3

Filtrando um dicionário

filter em um dicionário produz um dicionário com os pares de chave e valor correspondentes:

let ages = ["Ann": 30, "Bo": 17, "Cy": 22]
let adults = ages.filter { $0.value >= 18 }
print(adults.keys.sorted())  // ["Ann", "Cy"]

Verificação rápida

O que um predicado de filter deve retornar?

Recapitulação

Você aprendeu a filtrar:

  • filter mantém os elementos cujo predicado é true
  • Um predicado é qualquer função que converte um valor em Bool
  • O tipo dos elementos é preservado; o vetor pode ficar menor
  • Combine condições com && / || e encadeie com map

A seguir: reduce.

Perguntas Frequentes

A aula “filter e Predicados” é grátis?

Sim — o texto completo de “filter e Predicados” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Swift Academy, atualize para CoddyKit PRO. O curso de Swift Academy inclui 4 aulas no total.

O que vou aprender em “filter e Predicados”?

Selecione os elementos que satisfazem uma condição. Você pratica Swift Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Swift Academy?

Nenhuma experiência prévia é necessária. Swift Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “filter e Predicados”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Swift Academy?

Sim. Cada aula de Swift Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. map e compactMap
  2. filter e Predicados
  3. reduce e reduce(into:)
  4. flatMap e Encadeamento
← Voltar para Swift Academy