Map/Filter/Reduce e sequências lazy
Use map / filter / reduce para transformar, selecionar e combinar; depois adicione .lazy para adiar o trabalho e evitar arrays intermediários.
Map/Filter/Reduce e sequências lazy é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 2 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.
Ideia central
Algoritmos fundamentais:
- mapear: transformar cada elemento
- filtrar: manter os elementos que correspondem a um predicado
- reduce: combinar em um único valor
- .lazy: adiar o trabalho para evitar matrizes temporárias
Mapear
Mapear transforma 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 upper = words.map { $0.uppercased() } // ["SWIFT","KIT"]
print(upper)Filtrar
Filtrar mantém os elementos para os quais o predicado retorna verdadeiro.
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)Reduzir
reduce combina uma sequência em um único resultado usando um valor inicial e um fechamento de combinação.
let total = [1,2,3,4].reduce(0) { acc, x in acc + x } // 10
print(total)
let joined = ["a","b","c"].reduce("") { $0 + $1 } // "abc"
print(joined)Trabalho lento sob demanda
.lazy cria um fluxo adiado: as operações são executadas à medida que você consome os elementos (por exemplo, por meio de prefix, first ou da iteração).
let range = 1...10
let lazyPipeline = range.lazy
.map { x in print("map", x); return x * x }
.filter { x in print("filter", x); return x % 2 == 0 }
// Only the first 3 results are needed:
let firstThree = Array(lazyPipeline.prefix(3))
print("result:", firstThree)
// Notice how only the work needed for 3 elements ran.Dicas
Dicas:
- Encadeie mapear → filtrar → reduce para obter fluxos de dados claros.
- Adicione .lazy quando consumir apenas parte de um fluxo ou quiser evitar temporários.
- Materialize com
Array(...)somente quando precisar de uma matriz concreta.
Semântica de lazy
Verificação rápida: qual é o efeito de .lazy em uma cadeia de mapear/filtrar?
Recapitulação
Recapitulação: use mapear para transformar, filtrar para selecionar e reduce para combinar. Adicione .lazy para avaliação sob demanda e menos alocações.
Perguntas Frequentes
A aula “Map/Filter/Reduce e sequências lazy” é grátis?
Sim — o texto completo de “Map/Filter/Reduce e sequências lazy” é 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 “Map/Filter/Reduce e sequências lazy”?
Use map / filter / reduce para transformar, selecionar e combinar; depois adicione .lazy para adiar o trabalho e evitar arrays intermediários. 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 3.
Quanto tempo leva a aula “Map/Filter/Reduce e sequências lazy”?
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
- Hierarquias Sequence/Collection
- Map/Filter/Reduce e sequências lazy
- Iteradores personalizados e dicas de desempenho