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 }) // falseDicas 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
- Funções e tipos genéricos
- Restrições (where) e inferência de tipos
- Algoritmos genéricos em coleções