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/hellomodule example.com/hello go 1.23À 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.