Il est temps d’écrire et d’exécuter du vrai Go. Dans cette leçon, vous créez un
module, écrivez un programme Hello World dans main.go, l’exécutez avec
go run, puis compilez un binaire autonome avec go build — tout en comprenant
le rôle de chaque ligne.
Créer un module
Un projet Go est un module, décrit par un fichier go.mod. Créez un dossier
vide, ouvrez-y un terminal, et initialisez le module :
mkdir hello
cd hello
go mod init example/hello
Cette commande écrit un petit fichier go.mod qui note le chemin du module et la
version de Go :
module example/hello
go 1.24
Le chemin du module (example/hello) n’est qu’un identifiant. Pour un projet que
vous comptez publier, vous utiliseriez le chemin de son dépôt, par exemple
github.com/vous/hello.
Écrire main.go
Créez un fichier nommé main.go à côté de go.mod et saisissez ce programme
complet et exécutable :
package main
import "fmt"
func main() {
fmt.Println("Bonjour, le monde !")
}
C’est un programme Go complet. Enregistrez le fichier : la section suivante l’exécute.
Comprendre chaque partie
Chaque ligne ci-dessus a un rôle :
package maindéclare que ce fichier appartient au packagemain. Un programme exécutable doit avoir un packagemain; tout autre nom produit une bibliothèque plutôt qu’un exécutable.import "fmt"importe le packagefmtde la bibliothèque standard, qui gère les entrées et sorties formatées.func main()est le point d’entrée. À l’exécution, Go appellemainen premier ; lorsqu’elle se termine, le programme s’arrête.fmt.Println(...)affiche son argument suivi d’un retour à la ligne.
L’exécuter avec go run
Depuis le dossier du module, exécutez le programme avec :
go run .
Le . indique à Go de compiler et d’exécuter le package du dossier courant.
Vous verrez :
Bonjour, le monde !
go run compile vers un emplacement temporaire et exécute aussitôt : idéal
pendant vos expérimentations.
Compiler un binaire avec go build
Quand vous voulez un fichier à partager ou à déployer, compilez-le plutôt :
go build
Cela produit un exécutable dans le dossier courant — hello sur macOS et Linux,
hello.exe sur Windows — nommé d’après le module. Lancez-le directement :
./hello
La sortie est le même Bonjour, le monde !, mais c’est maintenant un binaire
autonome qui ne nécessite aucune installation de Go pour s’exécuter.
Erreurs fréquentes
- Mauvais nom de package. Si la première ligne n’est pas
package main,go runetgo buildne créeront pas de programme exécutable. - Import manquant. Utiliser
fmt.Printlnsansimport "fmt"ne compile pas. À l’inverse, importer un package jamais utilisé est aussi une erreur. - Lancer depuis le mauvais dossier.
go run .etgo builddoivent s’exécuter dans le dossier du module qui contientgo.modetmain.go.
À vous de jouer
À partir du même module, modifiez le programme pour qu’il affiche deux lignes :
Bonjour, le monde ! puis J’écris du Go..
Afficher la correction
Ajoutez un second appel à fmt.Println dans main :
package main
import "fmt"
func main() {
fmt.Println("Bonjour, le monde !")
fmt.Println("J’écris du Go.")
}Exécutez-le avec go run .. Chaque Println affiche son texte sur sa propre
ligne : le programme produit donc les deux messages dans l’ordre.
Résumé
- Un projet Go est un module créé avec
go mod init <chemin>. - Un programme exécutable a besoin de
package mainet d’un point d’entréefunc main. - Utilisez
go run .pour exécuter pendant le développement etgo buildpour produire un binaire.
Maintenant que vous savez exécuter du code, apprenez à stocker et utiliser des valeurs avec les variables et les types en Go. Vous pouvez aussi revenir à l’index du cours Go complet.