Nach dieser Antwort habe ich folgende Projektstruktur erstellt:
.
├── bin
├── pkg
└── src
└── github.com
└── GITHUB_USERNAME
└── PROJECTNAME
├── lib
│ └── model.go
│ └── ... .go
├── LICENSE
├── README.md
└── PROJECTNAME.go
PROJECTNAME.go
hat das Paket main
model.go
hat das Paket PROJECTNAME
Im PROJECTNAME.go
importiere ich folgendes:
import(
'github.com/GITHUB_USERNAME/PROJECTNAME/lib/model'
)
aber wenn ich go build
renne, bekomme ich den folgenden Fehler:
cannot find package "github.com/GITHUB_USERNAME/PROJECTNAME/lib/model" in any of:
/usr/lib/go/src/pkg/github.com/GITHUB_USERNAME/PROJECTNAME/lib/model (from $GOROOT)
/home/USERNAME/go/src/github.com/GITHUB_USERNAME/PROJECTNAME/lib/model (from $GOPATH)
Wie müssen die Paketnamen sein, um korrekt zu importieren? Gibt es andere Strategien?
Paketimportpfade werden durch Verzeichnisnamen und nicht durch Dateinamen definiert.
Der richtige Importpfad lautet "github.com/GITHUB_USERNAME/PROJECTNAME/lib"
und alle go-Dateien in diesem Ordner müssen oben dieselbe package
Klausel haben .
Der Bezeichner nach der Paketklausel gibt an, welcher Bezeichner in das Paket importiert wird, das ihn importiert. Wenn dies der package foo
Fall ist, können Sie über den Bar
Importcode auf die Kennung zugreifen foo.Bar
.
Konventionell verwenden Autoren normalerweise den letzten Teil des Importpfads als package
Namen. In diesem Fall sollten Sie also package lib
oben in allen Go-Dateien unter dem Ordner lib stehen.
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen