Maison > développement back-end > Golang > Pourquoi est-ce que j'obtiens une erreur lors de la création d'un module frère dans Go ?

Pourquoi est-ce que j'obtiens une erreur lors de la création d'un module frère dans Go ?

王林
Libérer: 2024-02-09 12:57:09
avant
1124 Les gens l'ont consulté

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

En langage Go, les erreurs lors de la création de modules frères sont un problème courant. La cause de ce problème est généralement due à un conflit d'espace de noms dans le module. Lorsque nous créons deux modules portant le même nom dans le même répertoire, le compilateur Go considérera qu'il s'agit d'un conflit, provoquant une erreur. La solution à ce problème consiste à placer ces modules dans des répertoires différents pour éviter les conflits d'espace de noms. De plus, nous pouvons également utiliser des alias de package pour résoudre les conflits de modules. En donnant un alias à l'un des modules, vous pouvez éviter les conflits d'espace de noms et réussir à créer des modules frères. Dans le développement réel, nous devons prêter attention à la standardisation de la dénomination des modules et éviter les modules portant le même nom pour éviter cette erreur.

Contenu de la question

Voici mon système de fichiers :

Go/
  HelloWorld/
    go.mod
    go.sum
    hello.go
  GoQuote/
    go.mod
Copier après la connexion

J'ai installé le module et voici mon 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
)
Copier après la connexion

et c'est parti.somme :

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=
Copier après la connexion

L'erreur est la suivante : 无法导入rsc.io/quote/v4(在GOROOT或GOPATH中找不到包“rsc.io/quote/v4”)compilerBrokenImport et undefined: quotecompilerUndeclaredName

Aucune erreur ne s'est produite jusqu'à ce que je crée le répertoire GoQuote et exécute la commande go mod init example.com/GoQuote. Je suis nouveau sur Go (première heure !) et je ne sais pas quel est le problème.

J'ai essayé de sauvegarder tous les fichiers (je suis en code VS) mais sans succès.

Solution de contournement

On dirait que le problème vient de la structure du système de fichiers... si je le change en

Go/
  go.mod
  go.sum
  hello.go
GoQuote/
  go.mod
Copier après la connexion

Alors il n'y a pas d'erreur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal