Maison > développement back-end > Golang > le corps du texte

Comment accéder aux constantes et aux variables au niveau du package lorsqu'elles sont masquées par des variables locales dans Go ?

Susan Sarandon
Libérer: 2024-11-14 22:33:02
original
698 Les gens l'ont consulté

How to Access Constants and Package-Level Variables When Shadowed by Local Variables in Go?

Se référant aux constantes et aux variables au niveau du package à l'intérieur des fonctions

Dans le code Go fourni, dans la fonction principale, un nom de variable locale est défini, qui masque la constante ou variable au niveau du package avec le même nom. Cela peut prêter à confusion et à un comportement incorrect.

Comprendre l'observation

Dans Go, lorsqu'une nouvelle variable est déclarée dans une fonction, elle a priorité sur toute autre variable du même nom définie à un moment donné. niveau supérieur (par exemple, dans une portée au niveau du package). C'est ce qu'on appelle l'observation de variable.

Résolution

Pour faire référence au nom de la constante ou de la variable au niveau du package dans la fonction principale, nous ne pouvons pas utiliser directement le nom de l'identifiant car il désigne la fonction. -variable de niveau. Au lieu de cela, nous pouvons utiliser l'une des approches suivantes :

  • Enregistrement de la valeur constante ou variable : nous pouvons stocker temporairement la valeur de la constante ou de la variable au niveau du package dans un fichier local. variable avec un nom différent. Par exemple :
const name = "Yosua"

func main() {
    localName := name
    name := "Jobs"
    fmt.Println(name) // Jobs
    fmt.Println(localName) // Yosua
}
Copier après la connexion
  • Fournir une fonction Getter : Nous pouvons créer une fonction qui renvoie la valeur de la constante ou de la variable au niveau du package. Par exemple :
const name = "Yosua"

func getName() string {
    return name
}

func main() {
    name := "Jobs"
    fmt.Println(name) // Jobs
    fmt.Println(getName()) // Yosua
}
Copier après la connexion

Remarque

Si une variable au niveau du package est déclarée à l'aide de var au lieu de const, elle peut être masquée et réaffectée dans les fonctions. Dans de tels cas, l'utilisation de l'une des approches ci-dessus garantit que la valeur d'origine est préservée.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal