Junior — Middle
Pouvez-vous donner des situations ou des cas où le concept de contexte est utilisé?
sobes.tech IA
Réponse de l'IA
En Go, le concept de contexte (context.Context) est utilisé pour gérer la durée de vie des opérations, les annulations, les délais d'expiration et le passage de valeurs entre les goroutines.
Cas d'utilisation principaux :
- Annulation d'opérations : par exemple, lors du travail avec des requêtes réseau ou des bases de données, il est possible d'annuler une opération longue si le client interrompt la requête.
- Délais d'expiration et timeouts : il est possible de définir un temps maximum d'exécution d'une opération, après lequel elle sera automatiquement annulée.
- Transmission de valeurs : par exemple, des identifiants de requêtes, des jetons d'authentification, des métadonnées nécessaires à différents niveaux d'appels.
Exemple :
func HandleRequest(ctx context.Context) {
select {
case <-time.After(5 * time.Second):
// Effectuer le travail
case <-ctx.Done():
// Opération annulée ou délai d'expiration atteint
return
}
}
Le contexte aide à écrire un code plus gérable et réactif, notamment dans les applications multi-thread et réseau.