Maison >développement back-end >Golang >Les packages Go peuvent-ils s'étendre sur plusieurs répertoires sans importations compliquées ?

Les packages Go peuvent-ils s'étendre sur plusieurs répertoires sans importations compliquées ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-30 17:12:10310parcourir

Can Go Packages Span Multiple Directories Without Complicated Imports?

Organiser un package Go dans plusieurs répertoires

Question :

Pouvez-vous organiser un package Go dans plusieurs répertoires sources sans les utilisateurs ont des problèmes importations ?

Réponse :

Non, il n'est pas explicitement pris en charge dans la spécification du langage Go. La spécification du langage indique qu'un package peut exiger que tous les fichiers sources résident dans le même répertoire.

Conséquences de l'implémentation de plusieurs répertoires :

Si vous tentez de déclarer "package mypackage" dans plusieurs répertoires, vous rencontrerez des erreurs de compilation. Cela se produit parce que la spécification du langage permet aux implémentations de rejeter de telles structures.

Approche recommandée :

Au lieu d'organiser en répertoires, il est recommandé d'utiliser l'approche suivante :

  • Utilisez des noms de fichiers pour imiter la structure des dossiers : Par exemple, au lieu d'utiliser "foo1.go" et "bar1.go", utilisez "foo-foo1.go" et "foo-bar1.go".
  • Envisagez de le diviser en plusieurs packages : Si votre package est trop volumineux, envisagez de le diviser en packages plus petits pour une meilleure organisation.

Packages internes pour une portée limitée (Go 1.5 et ci-dessus) :

Dans Go 1.5 et versions ultérieures, vous pouvez créer des packages internes au sein d'un package en utilisant un sous-dossier "interne". Cela vous permet d'organiser les fichiers sources dans différents dossiers tout en conservant une structure hiérarchique au sein du package. Cependant, les packages externes ne peuvent pas importer ou utiliser des packages internes.

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