Junior — Middle
Spiega il concetto di closure che non esce dal contesto in programmazione.
sobes.tech AI
Risposta dell'AI
In programmazione, una closure è una funzione che cattura e conserva riferimenti alle variabili dell'ambito esterno, anche dopo che tale ambito ha terminato la sua esecuzione. Il concetto di closure che non esce dall'ambito significa che la closure continua ad avere accesso a queste variabili, poiché non vengono distrutte finché la closure esiste.
Ad esempio, in Swift:
func makeIncrementer(amount: Int) -> () -> Int {
var total = 0
return {
total += amount
return total
}
}
let incrementByFive = makeIncrementer(amount: 5)
print(incrementByFive()) // 5
print(incrementByFive()) // 10
Qui, la closure conserva la variabile total, che normalmente dovrebbe uscire dall'ambito dopo l'esecuzione di makeIncrementer. Ma grazie alla closure, total viene mantenuto e modificato ad ogni chiamata.
In questo modo, le closure permettono di mantenere lo stato e di lavorare con variabili dell'ambito esterno senza uscirne.