Ich lerne Go-Sprache und ich habe dieses Beispiel gemacht: http://thenewstack.io/make-a-restful-json-api-go/ , um eine einfache REST-API zu erstellen.GoLang und Pakete Layout mit relativen Pfaden
Ich habe es kompiliert und alles funktioniert gut, aber alle Quellen sind im Hauptpaket.
Jetzt möchte ich meine .go Dateien in Paketen organisieren, so dass ich mich bewege sie in einige Ordner auf diese Weise:
GOPATH\bin
GOPATH\pkg
GOPATH\src\pack1\Handlers.go
GOPATH\src\pack1\Logger.go
GOPATH\src\pack1\repo.go
GOPATH\src\pack1\Todo.go
GOPATH\src\router\Router.go
GOPATH\src\router\Routes.go
GOPATH\src\Main.go
Main.go nutzt alle Router-Paket so habe ich in der Import-Abschnitt setzen : "./router". Router.go verwendet das Paket pack1, also habe ich in Router.go "../pack1" importiert. Nun, wenn ich versuche, „gehen zu bauen Main.go“ Ich bekomme:
router\Router.go:6: imported and not used: "_/D_/GOPATH/src/pack1"
router\Router.go:14: undefined: Logger
und Ähnliche Fehler, scheint so, dass der Import von pack1 Paket, das ich gemacht habe, es ist falsch. Natürlich habe ich in allen Dateien, die zu pack1 gehören, im Header die Definition "package pack1" angegeben.
Ich habe auch gelesen, dass die relativen Importe in Go nicht empfohlen werden und es könnte nützlich sein, die Remote-Pakete wie "github.com/myrepo/mypackage" zu verwenden. Aber ich möchte nicht Remote-Importe verwenden; Ich möchte alle meine Dateien in einem zweiten Moment schieben.
Können Sie mir helfen, besser zu verstehen, wie lokale Importe zwischen Paketen in der Go-Sprache aussehen?
Dank im Voraus
lesen (oder neu zu lesen) durch [How Go-Code schreiben ] (https://golang.org/doc/code.html), die alles detaillierter erklärt. – JimB
Bitte beachten Sie, dass die Fehler "importiert und nicht verwendet" gelesen wurde, so dass der Import funktioniert, aber Sie kein Symbol des Pakets pack1 verwendet haben. Dies bezieht sich auf den nächsten Fehler "undefined: Logger": Wenn 'Logger' in Paketpack1 lebt, dann referenzieren Sie es von einem anderen Paket als' pack1.Logger'. Lesen Sie "How to Write Go Code" noch einmal und schauen Sie sich einige Arbeitspakete online an. – Volker
Danke Jungs für die Antwort, jetzt habe ich verstanden, wie man Pakete auf die richtige Weise importiert! So ist es auch einfacher!Ich habe eine letzte Frage: Ich kann das Projekt noch nicht kompilieren: in Router.go gibt es eine Instanz von Logger, also habe ich in Router.go das Paket "pack1" importiert, aber es steht, dass Logger nicht definiert ist: \ wo bin ich falsch machen? –