Le mécanisme de package « interne » dans Go permet d'organiser le code en modules autonomes invisibles pour les autres projets. Comprendre leur utilisation peut améliorer la structure et la maintenabilité du code.
Considérez la structure de projet suivante :
project/ internal/ foo/ foo.go # package foo bar/ bar.go # package bar main.go
Quand en important les packages "internes" depuis main.go, il est crucial d'utiliser des paths :
import ( "project/internal/foo" "project/internal/bar" )
Cela fonctionne car le package "interne" n'est pas visible en dehors du répertoire projet/. Cependant, l'importation à l'aide de chemins complets (par exemple, import "foo") échouera.
Avec les modules Go, placer le répertoire du projet en dehors de $GOPATH/src nécessite un fichier go.mod pour définir les dépendances du module. Créez un fichier go.mod à la racine de votre projet :
module project go 1.14 require internal/bar v1.0.0 replace internal/bar => ./internal/bar require internal/foo v1.0.0 replace internal/foo => ./internal/foo
Dans ce cas, internal/bar et internal/foo sont traités comme des modules distincts. La directive replace garantit que les importations sont résolues dans le répertoire local.
Maintenant, l'exécution du fichier main.go imprimera :
Hello from Bar Hello from Foo
Cela montre comment des packages « internes » peuvent être utilisés pour encapsuler du code et maintenir une structure de projet propre.
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!