Dans les langages de programmation comme C, on peut définir des variables locales comme statiques à l'aide du mot-clé static, leur permettant de conserver leur valeur entre les appels de fonction . Existe-t-il un mécanisme similaire disponible dans Go ?
Utilisation de fermetures
Dans Go, une fermeture est une fonction littérale qui a accès aux variables définies dans sa portée englobante. Ces variables sont partagées entre la fonction de fermeture et la fonction englobante et persistent tant qu'elles restent accessibles. Ce comportement s'apparente aux variables locales statiques dans d'autres langages.
func main() { x := 1 y := func() { fmt.Println("x:", x) x++ } for i := 0; i < 10; i++ { y() } }
Dans cet exemple, la variable x est déclarée dans la fonction principale et accessible dans la fermeture y. La fermeture peut modifier la valeur de x, et ces modifications sont conservées lors des appels ultérieurs à y.
Cette approche fournit des fonctionnalités similaires aux variables locales statiques sans nécessiter de modificateurs explicites comme static. Il permet la définition de variables locales avec un état persistant, ce qui en fait un outil précieux pour divers scénarios de programmation.
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!