Maison > développement back-end > Golang > Puis-je importer tous les sous-packages d'un répertoire dans Go en utilisant une notation générique ?

Puis-je importer tous les sous-packages d'un répertoire dans Go en utilisant une notation générique ?

Mary-Kate Olsen
Libérer: 2024-11-16 08:11:03
original
527 Les gens l'ont consulté

Can I import all subpackages within a directory in Go using a wildcard notation?

Importation de sous-packages dans Go sans importer explicitement chaque répertoire

Lorsque vous travaillez avec une structure de projet qui comprend plusieurs sous-packages sous un seul répertoire, il peut être gênant d'importer chaque sous-paquet individuellement. Pour résoudre ce problème, les développeurs peuvent se demander s'il existe un moyen d'importer tous les sous-packages dans un répertoire en utilisant une notation générique.

Un exemple fourni par un utilisateur implique un projet avec une structure comme suit :

main.go (root directory)
|- entities
    |- bar
        |- bar.go
        |- basic.go
        |- req.go
Copier après la connexion

Tenter d'importer le sous-paquet bar en utilisant une notation générique comme indiqué ci-dessous déclenche une erreur de compilation :

package main

import bar "one/entities/bar/*"

func main(){

}
Copier après la connexion

Malheureusement, la syntaxe d'importation de Go ne prend pas en charge les importations par caractères génériques. Le message d'erreur précise qu'il n'y a aucun fichier Go dans le répertoire spécifié :

src/main/main.go:3:8: no Go files in /home/oleg/codes/oresoftware/oredoc/test/builds/go/src/one/entities/bar
Copier après la connexion

Au lieu d'importer des sous-packages à l'aide de caractères génériques, l'approche recommandée consiste à spécifier explicitement le sous-package à importer. Cela garantit que la dépendance est clairement définie et peut être facilement comprise par d'autres développeurs.

Pour l'exemple fourni, l'instruction d'importation correcte serait :

package main

import (
    "log"
    "one/entities/bar/basic"
)

func main(){

    v := basic.Get.Req.Headers{}
    log.Fatal(v)

}
Copier après la connexion

Dans ce cas, seul le le sous-paquet spécifique requis, c'est-à-dire de base, est importé. Cette approche évite les dépendances potentielles sur les sous-packages inutilisés et maintient le code organisé.

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