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

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

Barbara Streisand
Libérer: 2024-11-22 11:40:11
original
823 Les gens l'ont consulté

How to Access Package-Level or Constant Variables When Shadowed in Go?

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"
Copier après la connexion

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"
Copier après la connexion

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!

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