Accès aux variables de niveau constante ou au niveau du package via les variables au niveau de la fonction
Dans Go, il est courant de déclarer des constantes ou des variables au niveau du package niveau, les rendant accessibles tout au long du package. Cependant, lorsqu'une variable est également déclarée au niveau de la fonction, elle a priorité sur la variable au niveau du package dans la portée de la fonction.
Comment pouvons-nous faire référence à la variable constante ou au niveau du package au lieu de la fonction- variable de niveau dans de tels cas ?
Explication
Malheureusement, il n'existe aucun moyen simple de faire référence au niveau du package variable lorsqu'une variable de niveau fonction portant le même nom est présente. Selon la spécification Go, tout identifiant déclaré dans un bloc, y compris les fonctions, a priorité sur les identifiants déclarés au niveau du package dans la portée de ce bloc.
Solutions de contournement
Pour accéder simultanément aux variables au niveau du package et au niveau de la fonction, envisagez les solutions de contournement suivantes :
1. Utilisez des noms différents
Si possible, utilisez des noms différents pour les variables au niveau de la fonction et au niveau du package afin d'éviter les conflits. Cela vous permet d'accéder aux deux variables indépendamment.
2. Enregistrer une copie de la variable au niveau du package
Avant d'attribuer une valeur à la variable au niveau de la fonction, stockez une copie de la variable au niveau du package dans une nouvelle variable avec un nom différent. De cette façon, vous pouvez faire référence à la variable au niveau du package même dans le cadre de la fonction.
3. Créer une fonction
Une autre approche consiste à créer une fonction qui renvoie la valeur de la variable au niveau du package. Cela vous permet d'accéder à la variable au niveau du package en appelant la fonction dans la portée de la variable au niveau de la 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!