Maison > développement back-end > Golang > Plusieurs packages Go peuvent-ils coexister dans un seul répertoire ?

Plusieurs packages Go peuvent-ils coexister dans un seul répertoire ?

Mary-Kate Olsen
Libérer: 2024-12-03 18:56:11
original
300 Les gens l'ont consulté

Can Multiple Go Packages Coexist in a Single Directory?

Gestion de plusieurs packages dans le même répertoire

Question :

Est-il viable de maintenir deux paquets dans un seul répertoire ?

Contexte :

Dans un scénario où un projet englobe à la fois une bibliothèque et une interface de ligne de commande (CLI), la question se pose de savoir s'il est logique de structurez-les sous forme de packages distincts dans le même répertoire. Le problème vient de conflits potentiels lors de la compilation du projet, car les déclarations main du package et func main sont essentielles à l'exécution de la CLI mais entrent en conflit avec la déclaration du package myproject requise pour la bibliothèque.

Réponse :

Pour résoudre ce problème, il est recommandé de créer un nouveau sous-dossier dans le répertoire principal et de déplacer la bibliothèque ou la CLI vers le nouveau dossier. Cela garantit l'isolement entre les deux packages et évite les conflits de noms.

Solution :

  1. Créez un nouveau dossier, tel que lib ou bin, dans le projet principal répertoire.
  2. Déplacez la bibliothèque (myproject.go) ou la CLI (main.go) vers le nouveau dossier.
  3. Assurez-vous que le package déplacé est importé dans l'autre package en utilisant la référence $GOPATH correcte.

Exemple :

Considérez l'exemple de structure suivant :

whatever.io/
    myproject/
        main.go
        lib/
            myproject.go
Copier après la connexion

Dans ce cas, la bibliothèque myproject a été déplacée vers le sous-dossier lib. Le fichier main.go peut désormais importer la bibliothèque en utilisant :

import "../lib/myproject"
Copier après la connexion

Cette approche préserve l'organisation du projet tout en résolvant le conflit de compilation.

Ressources supplémentaires :

  • [aller construire contre aller construire file.go](https://stackoverflow.com/questions/29096547/go-build-vs-go-build-file-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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal