Création et utilisation de packages#
Structure d'un package#
- Un package en Go est une collection de fichiers source Go qui résident dans le même répertoire.
- Tous les fichiers d'un même package doivent déclarer le même nom de package en tête du fichier.
- Le nom du package est préférablement le même que le nom du répertoire contenant les fichiers source.
- La structure d'un package peut comprendre des fichiers pour les définitions de types, les fonctions, les variables, les constantes, etc.
- Chaque package peut avoir un fichier unique nommé
doc.go
où la documentation du package est écrite.
Déclaration d'un package#
- Pour déclarer un package, la première ligne non-commentée d'un fichier source doit être
package <nom-du-package>
. - Le
package main
est spécial en Go. C'est le point d'entrée du programme. Le compilateur Go cherche une fonctionmain
dans lepackage main
pour démarrer l'exécution du programme. - Exemple de déclaration de package :
package monpackage
Exportation de fonctions et de variables#
- Les noms de fonctions, de variables et de types commençant par une majuscule sont exportés du package. Ils sont accessibles en dehors du package.
- Les noms commençant par une minuscule sont privés au package. Ils ne peuvent pas être directement accessibles en dehors du package.
- Exemple d'exportation d'une fonction :
package monpackage // Cette fonction peut être appelée en dehors du package func MaFonctionExportee() { // code de la fonction }
Importation et utilisation de packages#
- Pour utiliser un package, il faut l'importer à l'aide de la directive
import
. - Une fois importé, les fonctions, les variables et les types exportés peuvent être utilisés en préfixant leur nom par le nom du package.
- Les packages standard de Go comme
fmt
ouos
peuvent être importés directement. Pour les packages tiers, il faut utiliser le chemin complet. - Pour les projets plus conséquents, Go propose la notion de modules pour gérer les dépendances à plus grande échelle.
- Exemple d'importation et d'utilisation de packages :
package main import ( "fmt" "monpackage" ) func main() { fmt.Println("Appel de la fonction exportée :") monpackage.MaFonctionExportee() }
Dans le terminal, pour récupérer les packages tiers, vous pouvez utiliser la commande go get
suivie de l'URL du dépôt du package. Par exemple : go get github.com/pkg/errors
.