0Pricing
Swift Academy · Aula

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

  1. Hierarquias Sequence/Collection
  2. Map/Filter/Reduce e sequências lazy
  3. Iteradores personalizados e dicas de desempenho
← Voltar para Swift Academy