{{tag>dev go tutoriel}} ====== Tutoriel : Introduction au langage Go ====== Ce tutoriel est une introduction rapide au langage Go. On y aborde : * L'installation de Go ; * La création d'un programme simple de type "Hello World" ; * L'utilisation de la commande go pour exécuter le code ; * Usage de l'outil de gestion de paquetage Go pour trouver des paquetages a intégrer dans son code ; * L'appel de fonctions dans un module externe. ===== Installer Go ===== L'installation ne présente pas de difficulté, voir les notes : * [[dev:go:installer_go_sur_gnu_linux|Installer Go sous Gnu/Linux]] ou * [[dev:go:installer_go_et_visual_studio_code_sur_windows|Go sur Windows]]. ===== Premier programme en Go ===== On peut programmer en Go en utilisant n'importe quel éditeur de texte. Notons que certains possèdent de la coloration syntaxique ou de l'autocomplétion : * Vim possède un module dédié à Go * VSCode((Visual Studio Code)) ==== Créer le répertoire des sources ==== Créer un répertoire pour accueillir le code de votre premier programme : cd ~ mkdir hello cd ~/hello ==== Activer le suivi des dépendances ==== Votre code va pouvoir importer des paquetages (distribués via les modules). Vous devez gérer ces dépendances dans votre propre module. Ce module est définit par un fichier **go.mod** qui effectue un suivi des modules fournissant les paquetages. Le fichier **go.mod** demeure avec votre code et doit être inclus à votre outil de gestion de révision. Pour activer le suivi des dépendances pour votre code et la création du fichier go.mod, exécuter la commande **''go mod init''** avec en paramètre le chemin du module qui contiendra votre code: ici nous allons utiliser un chemin de module quelconque comme 'exemple/hello' go mod init example/hello Pour un développement en condition réelle, le chemin du module sera en général l'adresse du dépôt publiant le module. Si vous souhaitez que votre module soit accessible, son chemin doit être une localisation accessible par les outils Go. Pour plus de détails à ce sujet voir la [[https://go.dev/doc/modules/managing-dependencies#naming_module|nommage des modules en Go]]. On crée le fichier source hello.go avec le contenu proposé ci-dessous : package main import "fmt" func main() { fmt.Println("Hello, World!") } Ce code minimaliste illustre quelques principes: * On déclare un paquetage "main". Un paquetage est moyen de grouper un ensemble de fonctions toutes définies dans un ensemble de fichiers appartenant à un même répertoire. * L'import du paquetage "fmt" qui contient un ensemble de fonctions de formatage du texte, incluant l'affichage dans une console. Ce paquetage fait parti de la [[https://pkg.go.dev/std|bibliothèque standard de Go]]. * Définition d'une fonction "main" pour afficher un message dans la console. La fonction "main" est exécutée par défaut lorsque le paquetage "main" est exécuté par Go. Pour exécuter le code : go run . ==== Appeler le code d'un paquetage externe ==== Quand votre programme a besoin d'une fonctionnalité qui a pu être mise en œuvre par un tiers, vous pouvez parcourir les paquetages à la recherche de fonctions que vous pourrez utiliser dans votre code. On peut modifier notre programme pour rendre le message affiché un peu plus intéressant en proposant une citation. * Ouvrir [[https://pkg.go.dev/]] et saisir le mot clé "quote" ; * Parmi les résultat, séléctionner quote (rsc.io/quote/v4) ; * Dans la section Documentation, sous Index, notez la liste des fonctions disponibles pouvant être appelées dans votre code. Nous allons utiliser la fonction Go(). * En haut de page, notez le paquetage "quote" distribué via le module "rsc.io/quote" On peut utiliser le site [[pkg.go.dev]] pour trouver les modules publiés contenant les paquetages groupant les fonctions appelables dans le code. package main import "fmt" import "rsc.io/quote" func main() { fmt.Println(quote.Go()) } ==== Mis a jour des modules requis ==== Go ajoute le module "quote" en prérequis ainsi qu' un fichier ''go.sum'' pour authentifier le module. # MAJ des dépendances : télécharge le module quote nécessaire au programme go mod tidy # Exécution le programme go run . ===== Écrire plus de Go ===== Cette brève introduction a abordé quelques bases en Go. Pour écrire plus de code voir [[dev/go/tutoriels/ecrire_un_module_en_go|créer un module en Go]]. ===== Références ===== * https://go.dev/learn/ * https://go.dev/doc/tutorial/index.html * https://go.dev/doc/tutorial/getting-started