Eine beliebige Anzahl von Dateien in einem Verzeichnis ist ein einzelnes Paket. In einer Datei deklarierte Symbole stehen den anderen ohne imports oder Qualifikationsmerkmale zur Verfügung. Alle Dateien benötigen oben dieselbe package fooDeklaration (oder Sie erhalten eine Fehlermeldung von go build).
Sie müssen GOPATHSet an das Verzeichnis , in dem pkg, srcund binVerzeichnissen 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 mainund ein anderes Paket, können Sie etwas unter am Ende tut workspace/srcwie
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: rungeht schlecht mit mehreren Dateien um mainund 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 aErklärung oben haben.)