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
Mary-Kate Olsenoriginal
2024-12-03 18:56:11293parcourir

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

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"

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!

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