Junior — Middle
Explicați mecanismul de funcționare a closure-urilor în programare.
sobes.tech AI
Răspuns de la AI
În programare, o închidere (closure) este o funcție care "își amintește" și poate utiliza variabile din domeniul său exterior, chiar dacă această funcție externă a terminat deja execuția.
În Go, închiderea este adesea creată folosind funcții anonime care accesează variabile din contextul înconjurător. Acest lucru permite păstrarea stării între apelurile funcției.
Exemplu:
package main
import "fmt"
func contor() func() int {
count := 0
return func() int {
count++
return count
}
}
func main() {
c := contor()
fmt.Println(c()) // 1
fmt.Println(c()) // 2
fmt.Println(c()) // 3
}
Aici, funcția contor returnează o închidere care crește și returnează valoarea lui count. Variabila count este păstrată în închidere între apeluri.