Partage d'un nom entre bibliothèques et binaires dans Go
Lors de la création d'un progiciel, vous souhaiterez peut-être une bibliothèque et un binaire autonome avec le même nom. Cela peut être utile pour des outils comme tar, qui est utilisé à la fois comme commande et comme bibliothèque.
Au départ, vous pouvez essayer une structure de répertoires simple :
src/ tar/ tar.go # belongs to package tar main.go # imports tar and provides a main function
Cependant, cette approche conduit à un binaire nommé « tarbin » au lieu de « tar ». Pour résoudre ce problème, la documentation Go recommande de séparer la commande et la bibliothèque dans des répertoires distincts :
src/ tar/ tar.go # belongs to package tar tarbin/ main.go # imports tar and provides a main function
Bien que cela produise une commande nommée "tar", la bibliothèque s'appelle désormais "tarbin".
Une solution plus élégante consiste à imbriquer le binaire dans le répertoire de la bibliothèque :
src/ tar/ tar.go # tar library tar/ main.go # tar binary
Cette structure fournit à la fois un binaire nommé "tar" et une bibliothèque nommée "tar."
En fonction de vos priorités, vous pouvez échanger les positions de la bibliothèque et du binaire au sein de la structure imbriquée.
Le fait de regrouper tout le code dans une seule arborescence offre des avantages, tels que exécutez go install ./... à partir du répertoire racine pour créer tous les packages et sous-packages.
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!