Zugriff auf Globale Variablen über Pakete Gehen
Ich habe zwei Variablen in den globalen Gültigkeitsbereich des package main
, dann sind das diese:
var (
app Application
cfg Config
)
Nun, da die Größe für meine Anwendung gestartet wird, zu erhöhen, habe ich beschlossen, jedes Modul von der website in einem eigenen Paket, ähnlich wie ein Unterverzeichnis, etwa so:
/src/github.com/Adel92/Sophie
+ user/ (package user)
- register.go
- login.go
- password.go
+ topic/ (package topic)
- ... etc
- main.go (package main)
Wie würde ich gehen rund um den Zugriff auf die app
und cfg
Globale Variablen aus anderen packages? Ist dies der falsche Weg, um darüber zu gehen? Ich habe das Gefühl, es ist.
In diesem Fall, wie würde ich erklären Funktionen in Ihren eigenen Namensraum, so dass ich nicht zu verrückt mit Namen, befestigt mit user
und topic
alle Zeit.
Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Großbuchstaben Namen von Variablen, die exportiert werden, für den Zugriff in anderen Paketen, so
App
undCfg
funktionieren würde. Allerdings mit sub-Pakete für Namen-Abstand ist im Allgemeinen nicht empfehlenswert; Pakete sind bestimmt für diskrete, in sich geschlossene Funktionalität, so ist es in der Regel mehr ärger als es Wert ist, Sie zu benutzen auf diese Weise (für Beispiel, import-Zyklen sind grundsätzlich ausgeschlossen, also, wenn Sie zwei sub-Pakete in diesem layout, die Notwendigkeit, miteinander zu reden, dann bist du out of luck).Wenn Sie finden, müssen Sie Präfix Dinge mit
user
undtopic
um zu vermeiden, dass Kollisionen mit Namen, die dann vielleicht das zugrunde liegende Konzept sollte sein factored in sein eigenes Paket, und Sie können erstellen eine Instanz füruser
und eine fürtopic
?