Sobes.tech
Junior — Middle

Quel est le rôle et la finalité du contexte dans le langage de programmation Go?

sobes.tech IA

Réponse de l'IA

Dans le langage Go, le contexte (context.Context) est utilisé pour gérer la durée de vie des opérations, transmettre des signaux d'annulation et passer des valeurs entre goroutines et fonctions.

Les principales tâches du contexte :

  • Annulation des opérations : permet d'annuler des opérations longues ou bloquantes, par exemple en cas de délai d'expiration ou d'annulation de requête.
  • Transmission de délais : il est possible de définir un moment après lequel l'opération doit être automatiquement interrompue.
  • Transmission de valeurs : permet de transmettre des données liées à la requête ou à l'opération, comme des identifiants d'utilisateur, des jetons, etc.

Exemple d'utilisation :

ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()

// Passer ctx à une fonction qui effectue une opération longue
result, err := LongOperation(ctx)
if err == context.DeadlineExceeded {
    fmt.Println("Opération interrompue par délai d'expiration")
}

Le contexte aide à écrire un code plus gérable et réactif, notamment dans les applications réseau et concurrentes.