Maison > développement back-end > Golang > Comment puis-je utiliser et importer correctement des packages internes dans Go ?

Comment puis-je utiliser et importer correctement des packages internes dans Go ?

Patricia Arquette
Libérer: 2024-12-17 14:13:10
original
848 Les gens l'ont consulté

How Can I Properly Use and Import Internal Packages in Go?

Comprendre l'utilisation des packages internes dans Go

Lors de l'organisation du code Go, les packages internes offrent un moyen de maintenir la modularité et l'encapsulation au sein d'un projet. Dans la structure de code donnée, un package "interne" est créé dans le répertoire "projet".

Exclusion des packages internes des importations externes

Cependant, comme mentionné , l'importation depuis un package interne en dehors de son répertoire parent n'est pas possible. En effet, les packages internes ne sont pas exportés et ne sont accessibles qu'à partir de l'arborescence des sources du projet. Les importations externes depuis l'extérieur du répertoire du projet ne fonctionneront que pour les packages situés dans l'arborescence $GOPATH/src.

Résolution des problèmes d'importation

Pour résoudre les problèmes d'importation, le répertoire du projet peut être placé sous $GOPATH/src. Cela garantit que les packages internes sont accessibles au package principal situé dans "project/main.go."

Prise en charge du module avec Go v1.11 et supérieur

Alternativement, avec l'introduction de modules dans Go v1.11 et versions ultérieures, vous pouvez définir le module de votre projet en créant un fichier go.mod. Ce fichier précise l'emplacement de chaque module au sein de votre projet. Voici un exemple de la façon dont il serait configuré :

project/
    go.mod
    main.go
    
    internal/
        bar/
            bar.go
            go.mod
        
        foo/
            foo.go
            go.mod
Copier après la connexion

go.mod pour project/internal/bar :

module bar

go 1.14
Copier après la connexion

bar. aller :

package bar

import "fmt"

// Bar prints "Hello from Bar"
func Bar() {
    fmt.Println("Hello from Bar")
}
Copier après la connexion

go.mod pour projet/interne/foo :

module foo

go 1.14
Copier après la connexion

foo.go :

package foo

import "fmt"

// Foo prints "Hello from Foo"
func Foo() {
    fmt.Println("Hello from Foo")
}
Copier après la connexion

main.go :

package main

import (
    "project/internal/bar"
    "project/internal/foo"
)

func main() {
    bar.Bar()
    foo.Foo()
}
Copier après la connexion

Dans cette configuration, le fichier go.mod définit le chemin du module et les informations de dépendance pour chaque package interne. L'instruction replace garantit que Go sait où trouver les packages internes, même s'ils se trouvent en dehors de l'arborescence $GOPATH/src standard.

Avec cette approche, vous pouvez facilement organiser votre code à l'aide de packages internes et y accéder de manière transparente. du package principal, offrant à la fois modularité et accessibilité au sein de votre projet.

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