GoGoPrimer
< Retour au module

Prise en main

Anatomie d'un programme Go

Reprenons le programme de la leçon précédente ligne par ligne.

package main
 
import "fmt"
 
func main() {
fmt.Println("Hello, Go!")
}

`package main` déclare le paquet auquel appartient ce fichier. Le paquet `main` est spécial : c'est celui qui produit un exécutable (tout autre nom de paquet produit une bibliothèque). `import "fmt"` importe le paquet standard de formatage d'entrées-sorties, qui fournit `Println`, `Printf`, `Sprintf`, etc. `func main()` est le point d'entrée : dans un paquet `main`, cette fonction est appelée automatiquement au démarrage.

Go refuse de compiler un fichier qui importe un paquet non utilisé, ou qui déclare une variable locale jamais lue. Ce n'est pas un avertissement : c'est une erreur de compilation. Cette rigueur évite l'accumulation de code mort.

Un projet Go réel est organisé autour d'un module, déclaré dans un fichier `go.mod` à la racine. Il définit le chemin d'import du module et la version de Go utilisée, et référence les dépendances externes.

go mod init example.com/hello
Crée un fichier go.mod minimal pour démarrer un module.
module example.com/hello
 
go 1.23
Contenu généré : le chemin du module, puis la version de Go requise.

À toi de jouer

Sans exécuter de code : le fichier suivant compile-t-il ? Justifie. package main import ( "fmt" "os" ) func main() { fmt.Println("Hello") }

// Réfléchis avant de révéler la solution.