Heim >Backend-Entwicklung >Golang >Wie organisiert man Go-Code mithilfe interner Pakete mit Modulen effektiv?
Frage:
Wie organisiere ich Go-Code effektiv mithilfe „interner“ Pakete? ?
Anfänglich Problem:
Obwohl das Projekt außerhalb des GOPATH platziert wird, schlägt der Import interner Pakete aus main.go fehl, es sei denn, der relative Pfad wird verwendet (z. B. „./internal/foo|bar“).
Einführung von Modulen:
Mit der Einführung von Modulen in Go v1.11 und oben ist es nicht mehr erforderlich, das Projekt in $GOPATH/src zu platzieren. Stattdessen müssen Sie eine go.mod-Datei erstellen, um den Speicherort jedes Moduls anzugeben.
Beispiel:
Bedenken Sie die folgende Projektstruktur:
project/ go.mod main.go internal/ bar/ bar.go go.mod foo/ foo.go go.mod
go.mod-Dateien:
Die go.mod-Dateien für die internen Pakete sind einfach:
module bar go 1.14
module foo go 1.14
Code in internen Paketen:
// bar.go package bar import "fmt" // Bar prints "Hello from Bar" func Bar() { fmt.Println("Hello from Bar") } // foo.go package foo import "fmt" // Foo prints "Hello from Foo" func Foo() { fmt.Println("Hello from Foo") }
main.go:
// main.go package main import ( "internal/bar" "internal/foo" ) func main() { bar.Bar() foo.Foo() }
Projekt go.mod-Datei:
Das Projekt go.mod Die Datei informiert Go über die internen Pakete und deren Speicherorte:
module project go 1.14 require internal/bar v1.0.0 replace internal/bar => ./internal/bar require internal/foo v1.0.0 replace internal/foo => ./internal/foo
Wichtige Hinweise:
Ausführung:
Beim Ausführen der main.go-Datei wird nun Folgendes ausgegeben:
Hello from Bar Hello from Foo
Dieses Beispiel zeigt, wie man interne Pakete innerhalb eines Go-Projekts mithilfe von Modulen effektiv nutzt.
Das obige ist der detaillierte Inhalt vonWie organisiert man Go-Code mithilfe interner Pakete mit Modulen effektiv?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!