Préserver les valeurs des variables locales dans Go : les variables locales statiques revisitées
Contrairement aux langages tels que C, qui utilisent « statique » pour préserver les valeurs locales valeurs variables, Go propose une solution alternative : les fermetures.
Exploration des fermetures : la clé de l'état Maintenance
Les littéraux de fonction dans Go sont connus sous le nom de fermetures, leur permettant de référencer des variables dans leur portée englobante. Cela établit un contexte partagé dans lequel les variables persistent au-delà de la portée de la fonction englobante, permettant la maintenance de l'état.
Exemple : implémentation d'une fermeture dans Go
Au lieu de déclarer notre variable dans la portée globale, nous le plaçons en dehors de la définition de la fonction. Par exemple :
func main() { x := 1 // Variable x is now outside the function definition y := func() { fmt.Println("x:", x) // Closure refers to variable x x++ // Value of x is incremented } for i := 0; i < 10; i++ { y() // Repeated calls to the closure modify and print the value of x } }
En utilisant des fermetures, les développeurs Go peuvent simuler efficacement la fonctionnalité des variables locales statiques en C, leur permettant de conserver et de manipuler les valeurs des variables locales lors de plusieurs appels de fonction.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!