Junior — Middle
Explicați ce înseamnă captarea variabilelor în interiorul unei funcții de închidere
sobes.tech AI
Răspuns de la AI
Capturarea variabilelor din interiorul unei funcții de închidere înseamnă că închiderea "își amintește" și poate utiliza variabile din contextul înconjurător în care a fost creată.
De exemplu, dacă în interiorul unei funcții este declarată o variabilă, iar apoi se returnează o funcție care utilizează această variabilă, această variabilă este "capturată" de închidere și își păstrează valoarea chiar și după ieșirea din funcția externă.
Exemplu în Swift:
func makeIncrementer(amount: Int) -> () -> Int {
var total = 0
return {
total += amount
return total
}
}
let incrementByTen = makeIncrementer(amount: 10)
print(incrementByTen()) // 10
print(incrementByTen()) // 20
Aici, închiderea capturează variabilele total și amount, păstrând starea lor între apeluri. Acest lucru permite crearea de funcții cu stare internă.