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

王林
Freigeben: 2024-02-09 12:57:09
nach vorne
1103 Leute haben es durchsucht

为什么在 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
Nach dem Login kopieren

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
)
Nach dem Login kopieren

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=
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:stackoverflow.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage