Les packages internes fournissent un moyen d'organiser et de structurer le code Go au sein d'un projet tout en limitant leur visibilité à l'intérieur de la structure de répertoires du projet. Comprendre le concept de packages internes est crucial pour maintenir une base de code bien structurée et gérable.
Dans votre exemple, vous avez un dossier project/ en dehors de l'arborescence GOPATH et un répertoire internal/ contenant les packages foo et bar. Lorsque vous tentez d'importer ces packages depuis main.go, vous rencontrez des problèmes.
Avec l'introduction de modules dans Go v1.11 et supérieur, le précédent $GOPATH/ La structure du répertoire src pour les chemins du projet n’est plus nécessaire. Au lieu de cela, un fichier go.mod (fichier de définition de module) à la racine du répertoire de votre projet sert à définir le module du projet, ses dépendances et leurs versions.
Pour résoudre votre problème spécifique, vous pouvez adopter ce qui suit approche :
Un exemple de fichier go.mod :
module project go 1.16 require internal/bar v1.0.0 replace internal/bar => ./internal/bar require internal/foo v1.0.0 replace internal/foo => ./internal/foo
import ( "project/internal/foo" "project/internal/bar" )
En suivant ces étapes, votre code reconnaîtra et permettra l'utilisation de vos packages internes. N'oubliez pas que le but des packages internes est de maintenir une hiérarchie claire et d'empêcher l'accès externe à certaines parties de votre code. Ils constituent un outil précieux pour structurer et organiser efficacement vos projets Go.
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!