Heim  >  Artikel  >  Backend-Entwicklung  >  Warum erhalte ich beim Erstellen eines Geschwistermoduls in Go eine Fehlermeldung?

Warum erhalte ich beim Erstellen eines Geschwistermoduls in Go eine Fehlermeldung?

王林
王林nach vorne
2024-02-09 12:57:091104Durchsuche

为什么在 Go 中创建同级模块时会出现错误?

In der Go-Sprache sind Fehler beim Erstellen von Geschwistermodulen ein häufiges Problem. Die Ursache dieses Problems liegt normalerweise in einem Namespace-Konflikt im Modul. Wenn wir zwei Module mit demselben Namen im selben Verzeichnis erstellen, betrachtet der Go-Compiler dies als Konflikt und verursacht einen Fehler. Die Lösung für dieses Problem besteht darin, diese Module in verschiedenen Verzeichnissen abzulegen, um Namensraumkonflikte zu vermeiden. Darüber hinaus können wir auch Paketaliase verwenden, um Modulkonflikte zu lösen. Indem Sie einem der Module einen Alias ​​zuweisen, können Sie Namensraumkonflikte vermeiden und erfolgreich Geschwistermodule erstellen. In der tatsächlichen Entwicklung müssen wir auf die Standardisierung der Modulbenennung achten und Module mit demselben Namen vermeiden, um diesen Fehler zu vermeiden.

Frageninhalt

Das ist mein Dateisystem:

Go/
  HelloWorld/
    go.mod
    go.sum
    hello.go
  GoQuote/
    go.mod

Ich habe das Modul installiert und das ist mein HelloWorld/go.mod:

module example/hello

go 1.21.3

require (
    golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c // indirect
    rsc.io/quote/v4 v4.0.1
    rsc.io/sampler v1.3.0 // indirect
)

und go.sum:

golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c h1:qgOY6WgZOaTkIIMiVjBQcw93ERBE4m30iBm00nkL0i8=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
rsc.io/quote/v4 v4.0.1 h1:i/LHLEinr65wwTCqlP4OnMoMWeCgnFIZFvifdXNK+5M=
rsc.io/quote/v4 v4.0.1/go.mod h1:w/DafQky66grMesu3uPhdDMS3knhBippwwemZtMOyCI=
rsc.io/sampler v1.3.0 h1:7uVkIFmeBqHfdjD+gZwtXXI+RODJ2Wc4O7MPEh/QiW4=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=

Der Fehler ist wie folgt: 无法导入rsc.io/quote/v4(在GOROOT或GOPATH中找不到包“rsc.io/quote/v4”)compilerBrokenImport Und undefined: quotecompilerUndeclaredName

Es sind keine Fehler aufgetreten, bis ich das GoQuote-Verzeichnis erstellt und den Befehl go mod init example.com/GoQuote ausgeführt habe. Ich bin neu bei Go (erste Stunde!) und weiß nicht, wo das Problem liegt.

Ich habe versucht, alle Dateien zu speichern (ich bin im VS-Code), aber ohne Erfolg.

Workaround

Sieht so aus, als ob das Problem in der Struktur des Dateisystems liegt ... wenn ich es in

ändere
Go/
  go.mod
  go.sum
  hello.go
GoQuote/
  go.mod

Dann liegt kein Fehler vor.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Erstellen eines Geschwistermoduls in Go eine Fehlermeldung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen