Junior — Middle
Expliquez le mécanisme de fonctionnement de la fermeture en programmation.
sobes.tech IA
Réponse de l'IA
En programmation, une fermeture (closure) est une fonction qui "se souvient" et peut utiliser des variables de son environnement externe, même si cette fonction externe a déjà terminé son exécution.
En Go, les fermetures sont souvent créées à l'aide de fonctions anonymes qui accèdent à des variables du contexte environnant. Cela permet de conserver l'état entre les appels de la fonction.
Exemple:
package main
import "fmt"
func compteur() func() int {
count := 0
return func() int {
count++
return count
}
}
func main() {
c := compteur()
fmt.Println(c()) // 1
fmt.Println(c()) // 2
fmt.Println(c()) // 3
}
Ici, la fonction compteur retourne une fermeture qui incrémente et retourne la valeur de count. La variable count est conservée dans la fermeture entre les appels.