Ich versuche, ein benutzerdefiniertes Paket in Go zu erstellen und zu verwenden. Es ist wahrscheinlich etwas sehr offensichtliches, aber ich kann dazu nicht viele Informationen finden. Grundsätzlich habe ich diese beiden Dateien im selben Ordner:
mylib.go
package mylib
type SomeType struct {
}
main.go
package main
import (
"mylib"
)
func main() {
}
Wenn ich go run main.go
versuche, erhalte ich folgende Fehlermeldung:
main.go:4:2: import "mylib": cannot find package
Ich habe versucht, zuerst go build mylib.go
auszuführen, aber es scheint nichts zu tun (keine Datei generiert, keine Fehlermeldung). Also eine Idee, wie ich das machen könnte?
Vergewissern Sie sich zuerst, dass Sie das Dokument "How to write go" lesen und verstehen.
Die tatsächliche Antwort hängt von der Art Ihres "benutzerdefinierten Pakets" ab.
Wenn es allgemein verwendet werden soll, sollten Sie das so genannte "Github-Code-Layout" verwenden. Grundsätzlich machen Sie aus Ihrer Bibliothek ein separates go get
-Tabellenprojekt.
Wenn Ihre Bibliothek für den internen Gebrauch bestimmt ist, können Sie folgendermaßen vorgehen:
Demonstrieren:
src/
myproject/
mylib/
mylib.go
...
main.go
In der obersten Ebene von main.go
könnten Sie import "myproject/mylib"
und es funktioniert OK.
Für diese Art von Ordnerstruktur:
main.go
mylib/
mylib.go
Der einfachste Weg ist, dies zu verwenden:
import (
"./mylib"
)
Für ein auf GitHub gehostetes Projekt ist Folgendes üblich:
github.com/
laike9m/
myproject/
mylib/
mylib.go
...
main.go
mylib.go
package mylib
...
main.go
import "github.com/laike9m/myproject/mylib"
...
eine andere Lösung:
füge src/myproject
zu $ GOPATH hinzu.
Dann wird import "mylib"
kompiliert.
Ich bin ein erfahrener Programmierer, aber ganz neu in die Go-Welt! Ich gebe zu, dass ich nur wenige Schwierigkeiten hatte, Go zu verstehen. Ich war mit demselben Problem konfrontiert, als ich versuchte, meine go-Dateien in Unterordnern zu organisieren.
GO_Directory (das Verzeichnis, das $ GOPATH zugewiesen wurde)
GO_Directory //the one assigned to $GOPATH
__MyProject
_____ main.go
_____ Entites
_____ Fiboo // in my case, fiboo is a database name
_________ Client.go // in my case, Client is a table name
Auf Datei MyProject\Entities\Fiboo\Client.go
package Fiboo
type Client struct{
ID int
name string
}
in der Datei MyProject\main.go
package main
import(
Fiboo "./Entity/Fiboo"
)
var TableClient Fiboo.Client
func main(){
TableClient.ID = 1
TableClient.name = 'Hugo'
// do your things here
}
(Ich lasse Go 1.9 auf Ubuntu 16.04 laufen.)
Und denk dran, Jungs, ich bin ein Neuling auf Go. Wenn ich schlechte Praxis mache, lass es mich wissen!
paket lexico
type Analizador struct {
}
func main() {
}
En la clase Package main
import (
"github.com/user/lexico
)