Senior
Qu'est-ce que le contexte en Go et à quoi sert-il?
sobes.tech IA
Réponse de l'IA
Dans Go, context est un package et un type utilisés pour transmettre des signaux d'annulation, des délais d'expiration et d'autres données importantes pour l'exécution entre goroutines.
Les principales fonctions de context :
- Permet d'annuler des opérations (par exemple, des requêtes à une base de données ou HTTP) lorsqu'un délai d'expiration est atteint ou que l'utilisateur annule.
- Transmet des délais d'expiration (deadlines) pour les opérations.
- Permet de transmettre des valeurs à travers les fonctions (par exemple, des identifiants de requêtes).
Exemple d'utilisation :
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()
select {
case result := <-doWork(ctx):
fmt.Println("Résultat :", result)
case <-ctx.Done():
fmt.Println("Opération annulée ou délai d'expiration atteint")
}
Ici, ctx est passé à la fonction doWork, qui peut interrompre son travail si le contexte est annulé ou si le délai d'expiration est atteint. Cela aide à gérer la durée de vie des opérations et des ressources dans des programmes concurrents.