Outils pour utilisateurs

Outils du site


dev:go:tutoriels:demarrer_en_go

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 :

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
  • VSCode1)

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 nommage des modules en Go.

On crée le fichier source hello.go avec le contenu proposé ci-dessous :

hello.go
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 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.

hello.go
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 créer un module en Go.

Références

1)
Visual Studio Code
dev/go/tutoriels/demarrer_en_go.txt · Dernière modification : 2023/08/02 13:47 de yoann