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.
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.
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!