Middle
Ce este o închidere în Go?
sobes.tech AI
Răspuns de la AI
Închidere în Go este o funcție care "ține minte" valorile din domeniul său înconjurător, chiar și după ce funcția exterioară s-a încheiat. Acest lucru permite captarea variabilelor din exterior și utilizarea lor în interior.
// Funcție exterioară
func makeCounter() func() int {
count := 0 // Variabilă capturată
// Funcție internă (închidere)
return func() int {
count++ // Capturăm și modificăm count
return count
}
}
// Exemplu de utilizare
func main() {
counter1 := makeCounter() // Creăm prima închidere
fmt.Println(counter1()) // Afișează: 1
fmt.Println(counter1()) // Afișează: 2
counter2 := makeCounter() // Creăm o a doua închidere (cu propriul count)
fmt.Println(counter2()) // Afișează: 1
}