Sobes.tech
Junior — Middle

Explicați conceptul de closure și cum este utilizat în programare

sobes.tech AI

Răspuns de la AI

Închidere (closure) este o funcție care «ține minte» mediul în care a fost creată, inclusiv accesul la variabile din domeniul extern, chiar dacă această zonă a părăsit deja contextul de execuție.

În programare, closure este utilizată pentru:

  • Păstrarea stării între apelurile funcției fără utilizarea variabilelor globale.
  • Încapsularea datelor și crearea variabilelor private.
  • Crearea funcțiilor cu parametri predeterminați care păstrează valorile.

Exemplu în Swift (iOS):

func makeIncrementer(amount: Int) -> () -> Int {
    var total = 0
    let incrementer: () -> Int = {
        total += amount
        return total
    }
    return incrementer
}

let incrementByTen = makeIncrementer(amount: 10)
print(incrementByTen()) // 10
print(incrementByTen()) // 20

Aici, incrementer este o closure care capturează și păstrează variabila total din funcția externă, permițând păstrarea stării între apeluri.