Maison >développement back-end >Golang >Pourquoi Go renvoie-t-il « Impossible de charger le package : Package my_prog : Packages trouvés my_prog et main » ?

Pourquoi Go renvoie-t-il « Impossible de charger le package : Package my_prog : Packages trouvés my_prog et main » ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-13 08:49:09465parcourir

Why Does Go Return

Erreur : "Impossible de charger le package : Package my_prog : Packages trouvés my_prog et main"

Dans Go, chaque package doit résider dans un répertoire séparé dans le GOPATH. Lorsque vous rencontrez l'erreur « Impossible de charger le package : package my_prog : packages trouvés my_prog et main », cela indique que vous avez plusieurs packages définis avec le même nom mais dans des répertoires différents.

Dans votre cas, vous avoir :

  • main.go dans le répertoire /src/my_prog/main.go, qui définit le principal package
  • d_interface.go et d_struct_that_implements_the_interface.go dans le répertoire /src/my_prog, qui définissent tous deux le package my_prog

Pour résoudre ce problème, vous devez déplacer les fichiers d_interface. allez et d_struct_that_implements_the_interface.go dans un nouveau répertoire dans GOPATH/src et donnez-lui un nom unique, tel que mon_prog_pkg. La structure mise à jour ressemblerait à ceci :

/bin/
/pkg/
/src/
/src/main/
/src/main/main.go
/src/my_prog_pkg/
/src/my_prog_pkg/d_interface.go
/src/my_prog_pkg/d_struct_that_implements_the_interface.go

De cette façon, vous auriez deux packages distincts : main et my_prog_pkg.

La raison derrière cette exigence est que les packages Go fournissent un moyen de organiser et modulariser le code. Chaque package possède une fonctionnalité spécifique et peut être réutilisé dans plusieurs programmes. En définissant chaque package dans son propre répertoire, vous vous assurez que les packages sont isolés les uns des autres et évitez les conflits de noms.

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:
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