Maison > développement back-end > Golang > Puis-je regrouper une bibliothèque Go et une CLI dans le même répertoire ?

Puis-je regrouper une bibliothèque Go et une CLI dans le même répertoire ?

Barbara Streisand
Libérer: 2024-12-02 20:09:15
original
726 Les gens l'ont consulté

Can I Bundle a Go Library and CLI in the Same Directory?

Pouvez-vous regrouper la bibliothèque et la CLI dans le même répertoire ?

Avoir un répertoire avec des packages séparés pour une bibliothèque (fonctions exportées) et un l'interface de ligne de commande (exécutable CLI) soulève la question de savoir si c'est pratique. Le problème survient lorsque le compilateur go nécessite à la fois un package avec une fonction « principale » pour l'exécution du programme et la bibliothèque avec ses fonctions.

Le problème : plusieurs packages

Comme l'illustre l'exemple fourni, si "main" et le package de bibliothèque coexistent dans le même répertoire, le compilateur go se plaint de trouver plusieurs packages dans le même répertoire. répertoire.

La solution : packages imbriqués

Au lieu de conserver les packages dans le même répertoire, une solution simple consiste à créer un nouveau sous-répertoire dans le répertoire parent pour héberger soit la bibliothèque, soit le package CLI. N'oubliez pas de mettre à jour vos importations pour refléter le nouvel emplacement du package.

Exemple avec des packages imbriqués

Dans l'exemple révisé ci-dessous, le package "a" est déplacé vers un nouveau sous-répertoire "a" au sein du répertoire "so-multipack" :

so-multipack/
    a/
        a.go
    main.go
Copier après la connexion

Mise à jour main.go

package main

import "../so-multipack/a"

func main() {
    a.Hello()
}
Copier après la connexion

Mise à jour de a/a.go

package a

import "fmt"

func Hello() {
    fmt.Println("hello from a")
}
Copier après la connexion

Compilation réussie

En utilisant la structure de répertoires mise à jour, les commandes go s'exécutent désormais avec succès :

go run main.go
# Output: hello from a
go build
# Creates a "so-multipack" executable
Copier après la connexion

En imbriquant les packages dans le même répertoire parent, nous pouvons réussir à accueillir à la fois la bibliothèque et l'exécutable CLI.

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