Eine beliebige Anzahl von Dateien in einem Verzeichnis ist ein einzelnes Paket. In einer Datei deklarierte Symbole stehen den anderen ohne import
s oder Qualifikationsmerkmale zur Verfügung. Alle Dateien benötigen oben dieselbe package foo
Deklaration (oder Sie erhalten eine Fehlermeldung von go build
).
Sie müssen GOPATH
Set an das Verzeichnis , in dem pkg
, src
und bin
Verzeichnissen befinden. Dies ist nur eine Frage der Präferenz, aber es ist üblich, (manchmal $HOME
) einen einzigen Arbeitsbereich für alle Ihre Apps zu haben , nicht einen pro App.
Normalerweise wäre ein Github-Pfad github.com/username/reponame
(nicht nur github.com/xxxx
). Also , wenn Sie haben wollen main
und ein anderes Paket, können Sie etwas unter am Ende tut workspace/src
wie
github.com/
username/
reponame/
main.go
b/
b.go
Beachten Sie, dass Sie immer mit dem vollständigen github.com/...
Pfad importieren: Relative Importe sind in einem Arbeitsbereich nicht zulässig. Wenn Sie es leid sind, Pfade einzugeben, verwenden Sie goimports
. Wenn Sie damit auskommen go run
, ist es Zeit zu wechseln go build
: run
geht schlecht mit mehreren Dateien um main
und ich habe mich nicht darum gekümmert zu testen, aber gehört (von Dave Cheney hier ) go run
, dass schmutzige Abhängigkeiten nicht wiederhergestellt werden.
Klingt so, als hätten Sie zumindest versucht, GOPATH auf das Richtige einzustellen. Wenn Sie also immer noch nicht weiterkommen, geben Sie möglicherweise genau an, wie Sie die Umgebungsvariable (den Befehl usw.) festgelegt haben und welchen Befehl Sie ausgeführt haben und welcher Fehler aufgetreten ist. Hier sind Anweisungen, wie es zu setzen (und die Einstellung dauerhaft machen) unter Linux / UNIX und hier ist der Rat des Go - Team auf Arbeitsplatz Setup . Vielleicht hilft beides nicht, aber werfen Sie einen Blick darauf und zeigen Sie zumindest, welcher Teil Sie verwirrt, wenn Sie verwirrt sind.
package a
Erklärung oben haben.)