Fiche de révision : Fondamentaux du langage Go

Plan du Cours

  1. Origine et atouts de Go
  2. Projets utilisant Go
  3. Structure d’un programme Go
  4. Packages et modules
  5. Commandes du workflow Go
  6. Variables et types primitifs
  7. Déclaration et manipulation
  8. Conditions et opérateurs
  9. Boucles et contrôle itératif
  10. Fonctions et portée

1. Origine et atouts de Go

★ À maîtriser

  • Go a été développé chez Google à partir de 2007 par Robert Griesemer, Rob Pike et Ken Thompson pour dépasser les limites rencontrées avec le C++ dans les services cloud et les infrastructures distribuées.

  • La première version stable publique, Go 1.0, est sortie en mars 2012.

  • Les caractéristiques centrales de Go sont:

    • une syntaxe simple
    • un typage statique fiable
    • des outils intégrés pour les paquets
    • des outils intégrés pour les tests
    • des outils intégrés pour le formatage
    • des outils intégrés pour la documentation

Compléments

  • Go fournit des primitives de concurrence intégrées, notamment les goroutines et les channels, ainsi qu’un ramasse-miettes pour gérer automatiquement la mémoire.

Astuce mémo

Limites du C++ → Go : simplicité, performance et productivité

2. Projets utilisant Go

Points essentiels

  • Go est utilisé pour les projets backend, les outils en ligne de commande, les infrastructures cloud et les systèmes distribués.

  • Docker est une plateforme de conteneurisation développée avec Go, tandis que Kubernetes est un système open source de gestion de conteneurs.

Astuce mémo

Docker et Kubernetes pilotent des conteneurs avec Go

3. Structure d’un programme Go

Notions clés & Définitions

  • Fichier Go : fichier de code source portant l’extension .go et organisé autour de la définition du package, des imports et du code source

Points essentiels

  • La définition du package indique l’appartenance du fichier, les imports déclarent les packages utilisés et le code source contient notamment les fonctions et les variables globales.

Astuce mémo

Package → imports → code source

4. Packages et modules

Notions clés & Définitions

  • Package : unité d’organisation du code Go regroupant des fichiers .go partageant un espace de noms et des éléments liés par une logique commune
  • Module : ensemble versionné de packages géré comme une unité et défini par un fichier go.mod placé à la racine du projet

Points essentiels

  • Tous les fichiers d’un même dossier appartiennent au même package, tandis qu’un sous-dossier peut définir un package différent.

  • Le package main doit contenir func main() et produit un binaire exécutable, tandis qu’un package utilitaire fournit du code réutilisable et ne peut pas être exécuté seul.

  • Pour qu’une fonction, un type, une variable ou une constante soit accessible depuis un autre package, son identifiant doit commencer par une majuscule.

Astuce mémo

main produit un binaire, un package utilitaire fournit du code réutilisable

5. Commandes du workflow Go

★ À maîtriser

  • La commande go mod init <nom_du_module> initialise un module en créant le fichier go.mod.

  • La commande go fmt formate le code, go build compile un package ou un chemin en générant un exécutable, et go run compile puis exécute un fichier.

Compléments

  • La commande go mod tidy nettoie et synchronise les dépendances et met à jour go.sum.

Astuce mémo

Initier → nettoyer → formater → compiler ou exécuter

6. Variables et types primitifs

Notions clés & Définitions

  • Variable : valeur nommée d’un type unique, composée d’un identifiant, d’un type, d’une valeur et d’une adresse mémoire gérée automatiquement par Go

★ À maîtriser

  • Le type string représente une chaîne UTF-8 dont la valeur par défaut est "", tandis que le type rune représente un point de code Unicode dont la valeur par défaut est 0.

  • Les principaux types numériques sont:

    • int, entier signé
    • uint, entier non signé
    • byte, valeur de 0 à 255
    • float32, environ 7 chiffres de précision
    • float64, environ 15 chiffres de précision

Compléments

  • Le type bool représente une valeur logique true ou false et sa valeur par défaut est false.

Astuce mémo

Typage statique : une variable garde son type

7. Déclaration et manipulation

★ À maîtriser

📌 La déclaration explicite utilise var en indiquant le type, tandis que la déclaration inférée utilise := pour laisser Go déduire le type depuis la valeur affectée.

📌 L’opérateur = attribue ou modifie la valeur d’une variable, tandis que := déclare et initialise une nouvelle variable dans une portée adaptée.

Compléments

📌 Go permet de convertir explicitement une valeur avec la syntaxe de conversion de type, mais cette syntaxe ne suffit pas directement pour convertir une chaîne en entier.

  • Les constantes se déclarent avec const et sont adaptées aux valeurs immuables, tandis que les variables peuvent être modifiées.

Astuce mémo

var explicite, := inféré, = affecte

8. Conditions et opérateurs

Notions clés & Définitions

  • Contrôle de flux : organise le déroulement d’un programme en conditionnant l’exécution d’un bloc ou en répétant ce bloc tant qu’une condition est satisfaite

Points essentiels

  • Une comparaison entre deux valeurs retourne un booléen true ou false, et les opérateurs logiques permettent de combiner plusieurs comparaisons.

  • Une construction if exécute son bloc si la condition est vraie, else if teste d’autres conditions et else s’exécute lorsqu’aucune condition précédente n’est vérifiée.

📌 L’instruction switch évalue une expression et exécute le premier case correspondant, tandis que default s’exécute lorsqu’aucun case ne correspond.

Astuce mémo

Comparer → combiner → conditionner

9. Boucles et contrôle itératif

Points essentiels

  • Une boucle for avec itérateur initialise une variable, vérifie une condition de continuation, exécute le bloc puis met à jour l’itérateur à chaque tour.

📌 La boucle for utilisée comme boucle tant que répète un bloc tant que sa condition est vraie et doit devenir fausse pour éviter une boucle infinie.

  • La boucle for range parcourt un tableau, une chaîne ou une map et fournit à chaque itération l’index ainsi qu’une copie de la valeur correspondante.

📌 Le mot-clé break interrompt immédiatement la boucle, tandis que continue saute le reste de l’itération courante et passe à la suivante.

Astuce mémo

Itérateur → tant que → range ; break sort, continue saute

10. Fonctions et portée

Notions clés & Définitions

  • Fonction : bloc d’instructions nommé et réutilisable qui organise le code en unités logiques appelables

★ À maîtriser

  • Une fonction Go comprend:
    • le mot-clé func
    • un nom
    • des arguments
    • des types de retour
    • un corps

📌 Une variable globale est déclarée au niveau du package et accessible dans ses fonctions, une variable locale est accessible dans son bloc et ses blocs enfants, et un paramètre formel est accessible dans le corps de sa fonction.

Compléments

📌 Un paramètre formel portant le même nom qu’une variable globale masque cette variable globale à l’intérieur de la fonction.

  • Pour rendre une fonction visible depuis un autre package, son nom doit commencer par une majuscule, et les arguments sont passés par valeur en Go.

Astuce mémo

Globale dans le package, locale dans le bloc, paramètre dans la fonction

Tableaux de synthèse

Types de packages Go

TypeRôleExécution
mainContient le point d’entrée func main()Produit un binaire exécutable
Package utilitaireFournit des fonctions, types, constantes ou variables réutilisablesNe peut pas être exécuté seul

Portées des variables

CatégorieLieu de déclarationAccessibilité
GlobaleNiveau du packageFonctions du même package
LocaleFonction ou blocBloc et blocs enfants
Paramètre formelSignature de fonctionCorps de la fonction

Teste tes connaissances

Teste tes connaissances sur Fondamentaux du langage Go avec 29 questions à choix multiples et corrections détaillées.

1. Dans quel contexte et par quelles personnes Go a-t-il été développé ?

2. À quelle date la première version stable publique de Go, appelée Go 1.0, est-elle sortie ?

Faire le QCM →

Révisez avec les flashcards

Mémorisez les concepts clés de Fondamentaux du langage Go avec 66 flashcards interactives.

Qui a développé Go chez Google à partir de 2007 ?

Robert Griesemer, Rob Pike et Ken Thompson.

Pourquoi Go a-t-il été créé chez Google ?

Pour dépasser les limites du C++ dans les services cloud et infrastructures distribuées.

Quand est sortie la première version stable publique de Go ?

En mars 2012.

Voir les flashcards →

Cours similaires

Crée tes propres fiches de révision

Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.

Générateur de fiches