Heim >Backend-Entwicklung >Golang >Wie organisiert man Go-Code mithilfe interner Pakete mit Modulen effektiv?

Wie organisiert man Go-Code mithilfe interner Pakete mit Modulen effektiv?

Susan Sarandon
Susan SarandonOriginal
2024-12-25 14:12:24894Durchsuche

How to Effectively Organize Go Code Using Internal Packages with Modules?

Interne Pakete und ihre Verwendung verstehen

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:

  • Die Namen im erforderlichen Abschnitt sind für den internen Gebrauch von Go bestimmt und kann beliebig sein.
  • Die Versionsnummern im Abschnitt „require“ spielen in diesem Zusammenhang keine Rolle.
  • Die Ersetzungszeilen Geben Sie an, wo Go die internen Pakete finden kann.

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!

Stellungnahme:
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