0Pricing
Swift Academy · Aula

Algoritmos genéricos em coleções

Use algoritmos genéricos como map , filter e reduce e escreva suas próprias funções sobre Sequence com restrições simples.

Algoritmos genéricos em coleções é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 3 de 3. 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 3 aulas no total.

Por que usar algoritmos genéricos?

O Swift oferece algoritmos genéricos poderosos para sequências e coleções: transformação, filtragem e reduce. Você também pode escrever seus próprios auxiliares genéricos.

Transformação

Transformação aplica uma transformação a cada elemento e retorna uma nova matriz.

let nums = [1, 2, 3]
let doubled = nums.map { $0 * 2 }   // [2, 4, 6]
print(doubled)

let words = ["swift", "kit"]
let caps = words.map { $0.uppercased() } // ["SWIFT","KIT"]
print(caps)

Filtragem

Filtragem mantém os elementos que satisfazem um predicado.

let scores = [45, 72, 88, 53]
let passing = scores.filter { $0 >= 60 } // [72, 88]
print(passing)

let names = ["Ana","Li","Max"]
let short = names.filter { $0.count <= 2 } // ["Li"]
print(short)

Redução

reduce combina uma sequência em um único resultado, usando um valor inicial e um fechamento de combinação.

let sum = [1,2,3,4].reduce(0) { acc, x in acc + x } // 10
print(sum)

let joined = ["a","b","c"].reduce("") { acc, s in acc + s } // "abc"
print(joined)

Algoritmo personalizado (sequência)

Crie seu próprio algoritmo genérico restringindo a entrada a uma sequência e usando seu elemento.

// Works for any Sequence whose Element meets the predicate
func allMatch<S: Sequence>(_ seq: S, _ predicate: (S.Element) -> Bool) -> Bool {
    for x in seq { if !predicate(x) { return false } }
    return true
}
print(allMatch([2,4,6]) { $0 % 2 == 0 }) // true
print(allMatch(["ab","c"]) { $0.count >= 2 }) // false

Dicas e padrões

Dicas:

  • Prefira fechamentos claros: nomeie os parâmetros se a legibilidade for prejudicada.
  • Encadeie transformação → filtragem → reduce para criar cadeias de processamento.
  • Mantenha o trabalho pesado fora dos laços críticos para melhorar o desempenho.

Significado da redução

Verificação rápida: qual operação combina uma sequência em um único valor usando um valor inicial?

Recapitulação

Recapitulação: use a transformação para transformar, a filtragem para selecionar e reduce para combinar. Você também pode escrever seus próprios auxiliares genéricos sobre sequências.

Perguntas Frequentes

A aula “Algoritmos genéricos em coleções” é grátis?

Sim — o texto completo de “Algoritmos genéricos em coleções” é 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 3 aulas no total.

O que vou aprender em “Algoritmos genéricos em coleções”?

Use algoritmos genéricos como map , filter e reduce e escreva suas próprias funções sobre Sequence com restrições simples. 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 3 de 3.

Quanto tempo leva a aula “Algoritmos genéricos em coleções”?

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. Funções e tipos genéricos
  2. Restrições (where) e inferência de tipos
  3. Algoritmos genéricos em coleções
← Voltar para Swift Academy