Maison  >  Article  >  développement back-end  >  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 ?

王林
王林avant
2024-02-09 12:57:091062parcourir

为什么在 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

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
)

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=

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

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer