Basi delle closure e del capture
Comprenda la sintassi delle closure, gli argomenti abbreviati, le trailing closure, le liste di cattura e la differenza tra escaping e non-escaping.
Basi delle closure e del capture è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 1 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.
Introduzione
Questa lezione introduce le closure: blocchi di codice autonomi che può passare ad altri elementi. Esplori la sintassi, gli argomenti abbreviati, le trailing closure, le liste di cattura e le closure escaping e non-escaping.
Sintassi delle closure
Le closure hanno l'aspetto di funzioni leggere. Sintassi: { (params) -> Return in ... }.
let greet = { (name: String) -> String in
return "Hello, \\(name)"
}
print(greet("Ada"))Argomenti abbreviati
Swift fornisce argomenti abbreviati come $0, $1 per semplificare le closure.
let doubled = [1,2,3].map { $0 * 2 }
print(doubled)Trailing closure
Se una closure è l'ultimo argomento, può scriverla fuori dalle parentesi: una trailing closure.
func operate(_ x: Int, _ y: Int, _ f: (Int,Int)->Int) -> Int {
return f(x,y)
}
let sum = operate(2,3) { $0 + $1 }
print(sum)Nozioni di base sulla cattura
Le closure catturano valori dal loro ambito circostante, ad esempio un contatore progressivo.
func makeCounter() -> () -> Int {
var count = 0
return {
count += 1
return count
}
}
let counter = makeCounter()
print(counter()) // 1
print(counter()) // 2Liste di cattura ed escaping
Utilizzi le liste di cattura come [weak self] per evitare cicli di mantenimento. Per impostazione predefinita, le closure sono non-escaping; contrassegni @escaping se deve essere memorizzata oltre la chiamata.
class Greeter {
var name = "Ada"
lazy var greet: () -> Void = { [weak self] in
print("Hello", self?.name ?? "?")
}
}
let g = Greeter()
g.greet()Domanda sulle liste di cattura
Verifica rapida: qual è il ruolo di una lista di cattura?
Riepilogo
Riepilogo: le closure sono blocchi di codice inline. Apprenda la sintassi, gli argomenti abbreviati e le trailing closure, e controlli la cattura con le liste. Le closure escaping sopravvivono alla chiamata; quelle non-escaping sono il comportamento predefinito.
Domande Frequenti
La lezione «Basi delle closure e del capture» è gratuita?
Sì — il testo completo di «Basi delle closure e del capture» è 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 «Basi delle closure e del capture»?
Comprenda la sintassi delle closure, gli argomenti abbreviati, le trailing closure, le liste di cattura e la differenza tra escaping e non-escaping. 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 1 di 3.
Quanto tempo richiede la lezione «Basi delle closure e del capture»?
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
- Basi delle closure e del capture
- Liste di cattura — weak/unowned e cattura dei valori
- Escaping e non-escaping, autoclosure