Maison > développement back-end > Golang > Comment puis-je utiliser efficacement les packages « internes » dans Go pour une organisation améliorée du code ?

Comment puis-je utiliser efficacement les packages « internes » dans Go pour une organisation améliorée du code ?

DDD
Libérer: 2024-12-08 17:29:09
original
524 Les gens l'ont consulté

How Can I Effectively Use

Utilisation de packages « internes » dans Go

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.

Structure et chemin d'importation

Considérez la structure de projet suivante :

project/
  internal/
    foo/
      foo.go # package foo
    bar/
      bar.go # package bar
  main.go
Copier après la connexion

Quand en important les packages "internes" depuis main.go, il est crucial d'utiliser des paths :

import (
  "project/internal/foo"
  "project/internal/bar"
)
Copier après la connexion

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.

Modules et go.mod

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
Copier après la connexion

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.

Execution

Maintenant, l'exécution du fichier main.go imprimera :

Hello from Bar
Hello from Foo
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal