Référencement des constantes et des variables au niveau du package par rapport aux variables au niveau de la fonction
Dans Go, il est courant d'utiliser l'observation pour déclarer des variables ou des constantes avec le même nom dans des portées différentes. Bien que cela puisse être utile, il arrive parfois que vous deviez faire référence à la constante d'origine ou à la variable au niveau du package au lieu de la variable au niveau de la fonction.
Malheureusement, dans Go, il n'est pas possible de faire directement référence à la variable constante ou au niveau du package lorsqu'une variable locale portant le même nom existe. Cela est dû au concept de portée et à la préférence du compilateur Go pour les variables locales par rapport aux déclarations de niveau supérieur.
Pour accéder à la constante d'origine ou à la variable au niveau du package, vous devez utiliser des techniques alternatives. Une approche consiste à stocker la valeur dans une variable temporaire avant de réaffecter la variable locale :
cname := name name = "Jobs" fmt.Println(name) // Prints "Jobs" fmt.Println(cname) // Prints "Yosua"
Une autre option consiste à créer une fonction qui donne accès à la variable constante ou au niveau du package :
func getName() string { return name } name = "Jobs" fmt.Println(name) // Prints "Jobs" fmt.Println(getName()) // Prints "Yosua"
En utilisant ces techniques, vous pouvez accéder simultanément à la variable locale et à la constante d'origine ou à la variable au niveau du package. Cependant, il convient de noter que ces solutions de contournement ne constituent pas toujours la solution la plus élégante ou la plus efficace, et qu'une attention particulière doit être accordée pour éviter les conflits de noms dans votre code.
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!