Heim >Backend-Entwicklung >Golang >Wie greife ich auf Konstanten und Variablen auf Paketebene zu, wenn sie in Go durch lokale Variablen überschattet werden?

Wie greife ich auf Konstanten und Variablen auf Paketebene zu, wenn sie in Go durch lokale Variablen überschattet werden?

Susan Sarandon
Susan SarandonOriginal
2024-11-14 22:33:02780Durchsuche

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

Bezug auf Konstanten und Variablen auf Paketebene innerhalb von Funktionen

Im bereitgestellten Go-Code wird innerhalb der Hauptfunktion ein lokaler Variablenname definiert, der die Konstante überschattet oder eine Variable auf Paketebene mit demselben Namen. Dies kann zu Verwirrung und falschem Verhalten führen.

Shadowing verstehen

Wenn in Go eine neue Variable innerhalb einer Funktion deklariert wird, hat sie Vorrang vor allen anderen Variablen mit demselben Namen, die unter a definiert sind höheren Ebene (z. B. in einem Bereich auf Paketebene). Dies wird als Variablenschatten bezeichnet.

Auflösung

Um auf den Konstanten- oder Paketvariablennamen innerhalb der Hauptfunktion zu verweisen, können wir den Bezeichnernamen nicht direkt verwenden, da er die Funktion bezeichnet -Level-Variable. Stattdessen können wir einen der folgenden Ansätze verwenden:

  • Speichern des Konstanten- oder Variablenwerts: Wir können den Wert der Konstante oder Variablen auf Paketebene vorübergehend lokal speichern Variable mit einem anderen Namen. Zum Beispiel:
  • Bereitstellung einer Getter-Funktion: Wir können eine Funktion erstellen, die den Wert der Konstanten oder Variablen auf Paketebene zurückgibt. Zum Beispiel:

Hinweis

Wenn eine Variable auf Paketebene mit var anstelle von const deklariert wird, kann sie innerhalb von Funktionen gespiegelt und neu zugewiesen werden. In solchen Fällen stellt die Verwendung eines der oben genannten Ansätze sicher, dass der ursprüngliche Wert erhalten bleibt.

Das obige ist der detaillierte Inhalt vonWie greife ich auf Konstanten und Variablen auf Paketebene zu, wenn sie in Go durch lokale Variablen überschattet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn