Heim > Backend-Entwicklung > Golang > Wie kann ich interne Pakete in Go richtig verwenden und importieren?

Wie kann ich interne Pakete in Go richtig verwenden und importieren?

Patricia Arquette
Freigeben: 2024-12-17 14:13:10
Original
847 Leute haben es durchsucht

How Can I Properly Use and Import Internal Packages in Go?

Verstehen der Verwendung interner Pakete in Go

Bei der Organisation von Go-Code bieten interne Pakete eine Möglichkeit, die Modularität und Kapselung innerhalb eines Projekts aufrechtzuerhalten. In der angegebenen Codestruktur wird ein „internes“ Paket im „Projekt“-Verzeichnis erstellt.

Interne Pakete von externen Importen ausschließen

Jedoch wie erwähnt , ist der Import aus einem internen Paket außerhalb seines übergeordneten Verzeichnisses nicht möglich. Dies liegt daran, dass interne Pakete nicht exportiert werden und nur über den Quellbaum des Projekts zugänglich sind. Externe Importe von außerhalb des Projektverzeichnisses funktionieren nur für Pakete, die sich im $GOPATH/src-Baum befinden.

Importprobleme lösen

Um die Importprobleme zu beheben, Das Projektverzeichnis kann unter $GOPATH/src abgelegt werden. Dadurch wird sichergestellt, dass die internen Pakete für das Hauptpaket unter „project/main.go“ zugänglich sind.

Modulunterstützung mit Go v1.11 und höher

Alternativ können Sie mit der Einführung von Modulen in Go v1.11 und höher das Modul für Ihr Projekt definieren, indem Sie eine go.mod-Datei erstellen. Diese Datei gibt den Speicherort jedes Moduls in Ihrem Projekt an. Hier ist ein Beispiel dafür, wie es eingerichtet werden würde:

project/
    go.mod
    main.go
    
    internal/
        bar/
            bar.go
            go.mod
        
        foo/
            foo.go
            go.mod
Nach dem Login kopieren

go.mod für project/internal/bar:

module bar

go 1.14
Nach dem Login kopieren

bar. go:

package bar

import "fmt"

// Bar prints "Hello from Bar"
func Bar() {
    fmt.Println("Hello from Bar")
}
Nach dem Login kopieren

go.mod für project/internal/foo:

module foo

go 1.14
Nach dem Login kopieren

foo.go:

package foo

import "fmt"

// Foo prints "Hello from Foo"
func Foo() {
    fmt.Println("Hello from Foo")
}
Nach dem Login kopieren

main.go:

package main

import (
    "project/internal/bar"
    "project/internal/foo"
)

func main() {
    bar.Bar()
    foo.Foo()
}
Nach dem Login kopieren

In diesem Setup definiert die Datei go.mod den Modulpfad und die Abhängigkeitsinformationen für jedes interne Paket. Die Ersetzungsanweisung stellt sicher, dass Go weiß, wo die internen Pakete zu finden sind, auch wenn sie sich außerhalb des standardmäßigen $GOPATH/src-Baums befinden.

Mit diesem Ansatz können Sie Ihren Code einfach mithilfe interner Pakete organisieren und nahtlos darauf zugreifen aus dem Hauptpaket und bietet sowohl Modularität als auch Zugänglichkeit innerhalb Ihres Projekts.

Das obige ist der detaillierte Inhalt vonWie kann ich interne Pakete in Go richtig verwenden und importieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage