Sobes.tech
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ă.