Heim > Backend-Entwicklung > Golang > Wie greife ich beim Shadowing in Go auf Variablen auf Paketebene oder konstante Variablen zu?

Wie greife ich beim Shadowing in Go auf Variablen auf Paketebene oder konstante Variablen zu?

Barbara Streisand
Freigeben: 2024-11-22 11:40:11
Original
918 Leute haben es durchsucht

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

Referenzieren von Konstanten und Variablen auf Paketebene über Variablen auf Funktionsebene

In Go ist es üblich, Shadowing zum Deklarieren von Variablen oder Konstanten zu verwenden mit demselben Namen in verschiedenen Bereichen. Dies kann zwar nützlich sein, aber manchmal müssen Sie auf die ursprüngliche Konstante oder Variable auf Paketebene statt auf die Variable auf Funktionsebene verweisen.

Leider ist es in Go nicht möglich, direkt darauf zu verweisen die Konstante oder Variable auf Paketebene, wenn eine lokale Variable mit demselben Namen vorhanden ist. Dies liegt am Konzept des Gültigkeitsbereichs und daran, dass der Go-Compiler lokale Variablen gegenüber Deklarationen höherer Ebene bevorzugt.

Um auf die ursprüngliche Konstante oder Variable auf Paketebene zuzugreifen, müssen Sie alternative Techniken verwenden. Ein Ansatz besteht darin, den Wert in einer temporären Variablen zu speichern, bevor die lokale Variable neu zugewiesen wird:

cname := name
name = "Jobs"
fmt.Println(name) // Prints "Jobs"
fmt.Println(cname) // Prints "Yosua"
Nach dem Login kopieren

Eine andere Option besteht darin, eine Funktion zu erstellen, die Zugriff auf die Konstante oder Variable auf Paketebene bietet:

func getName() string {
    return name
}

name = "Jobs"
fmt.Println(name) // Prints "Jobs"
fmt.Println(getName()) // Prints "Yosua"
Nach dem Login kopieren

Durch die Verwendung dieser Techniken können Sie gleichzeitig auf die lokale Variable und die ursprüngliche Konstante oder Variable auf Paketebene zugreifen. Es ist jedoch zu beachten, dass diese Problemumgehungen möglicherweise nicht immer die eleganteste oder effizienteste Lösung sind und dass sorgfältige Überlegungen angestellt werden sollten, um Namenskonflikte in Ihrem Code zu vermeiden.

Das obige ist der detaillierte Inhalt vonWie greife ich beim Shadowing in Go auf Variablen auf Paketebene oder konstante Variablen zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage