0Pricing
Swift Academy · Lezione

Map/Filter/Reduce, sequenze lazy

Utilizzi map / filter / reduce per trasformare, selezionare e combinare i dati; aggiunga quindi .lazy per posticipare il lavoro ed evitare array intermedi.

Map/Filter/Reduce, sequenze lazy è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 2 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Swift Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Swift Academy include 3 lezioni in totale.

Idea fondamentale

Algoritmi fondamentali:

  • map: trasforma ogni elemento
  • filter: conserva gli elementi che corrispondono a un predicato
  • reduce: combina gli elementi in un unico valore
  • .lazy: rimanda l'esecuzione per evitare array temporanei

map

map trasforma ogni elemento e restituisce un nuovo array.

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)

filter

filter conserva gli elementi per i quali il predicato restituisce true.

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)

reduce

reduce riduce una sequenza a un singolo risultato usando un valore iniziale e una closure di combinazione.

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)

Lavoro lazy su richiesta

.lazy costruisce una pipeline differita: le operazioni vengono eseguite man mano che consuma gli elementi (ad esempio tramite prefix, first o l'iterazione).

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.

Suggerimenti

Suggerimenti:

  • Concateni map → filter → reduce per ottenere flussi di dati chiari.
  • Aggiunga .lazy quando consuma solo una parte della pipeline o desidera evitare valori temporanei.
  • Materializzi con Array(...) solo quando ha bisogno di un array concreto.

Semantica di lazy

Verifica rapida: quale effetto ha .lazy su una catena map/filter?

Riepilogo

Riepilogo: usi map per trasformare, filter per selezionare e reduce per combinare. Aggiunga .lazy per la valutazione su richiesta e un numero inferiore di allocazioni.

Domande Frequenti

La lezione «Map/Filter/Reduce, sequenze lazy» è gratuita?

Sì — il testo completo di «Map/Filter/Reduce, sequenze lazy» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Swift Academy, passa a CoddyKit PRO. Il corso Swift Academy include 3 lezioni in totale.

Cosa imparerò in «Map/Filter/Reduce, sequenze lazy»?

Utilizzi map / filter / reduce per trasformare, selezionare e combinare i dati; aggiunga quindi .lazy per posticipare il lavoro ed evitare array intermedi. Eserciti Swift Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Swift Academy?

Non è richiesta alcuna esperienza precedente. Swift Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 3.

Quanto tempo richiede la lezione «Map/Filter/Reduce, sequenze lazy»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Swift Academy?

Sì. Ogni lezione Swift Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Gerarchie Sequence/Collection
  2. Map/Filter/Reduce, sequenze lazy
  3. Iteratori personalizzati e suggerimenti sulle prestazioni
← Torna a Swift Academy