Algoritmi generici sulle collezioni
Utilizzi algoritmi generici come map , filter e reduce e scriva funzioni personalizzate su Sequence con vincoli semplici.
Algoritmi generici sulle collezioni è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 3 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.
Perché gli algoritmi generici?
Swift fornisce potenti algoritmi generici su Sequence/Collection: map, filter e reduce. Può anche scrivere i propri helper generici.
map
map applica una trasformazione a 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 caps = words.map { $0.uppercased() } // ["SWIFT","KIT"]
print(caps)filter
filter mantiene gli elementi che soddisfano un predicato.
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, utilizzando un valore iniziale e una closure di combinazione.
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)Generico personalizzato (Sequence)
Crei il Suo algoritmo generico vincolando l'input a Sequence e utilizzandone Element.
// 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 }) // falseSuggerimenti e pattern
Suggerimenti:
- Preferisca closure chiare: assegni un nome ai parametri se la leggibilità ne risente.
- Concateni map → filter → reduce per creare pipeline.
- Mantenga le operazioni pesanti fuori dai cicli più eseguiti, per migliorare le prestazioni.
Significato di reduce
Verifica rapida: quale operazione combina una sequenza in un unico valore usando un valore iniziale?
Riepilogo
Riepilogo: utilizzi map per trasformare, filter per selezionare e reduce per combinare. Può anche scrivere i propri helper generici su Sequence.
Domande Frequenti
La lezione «Algoritmi generici sulle collezioni» è gratuita?
Sì — il testo completo di «Algoritmi generici sulle collezioni» è 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 «Algoritmi generici sulle collezioni»?
Utilizzi algoritmi generici come map , filter e reduce e scriva funzioni personalizzate su Sequence con vincoli semplici. 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 3 di 3.
Quanto tempo richiede la lezione «Algoritmi generici sulle collezioni»?
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
- Funzioni e tipi generici
- Vincoli (where), inferenza dei tipi
- Algoritmi generici sulle collezioni