Junior — Middle
Peut-on transmettre des variables via le contexte d'exécution?
sobes.tech IA
Réponse de l'IA
En Go, via le contexte (context.Context), il est possible de transmettre des valeurs à l’aide de la fonction context.WithValue. Cela permet de transmettre des variables (clé-valeur) vers le bas dans la chaîne d’appels, par exemple, pour transmettre des paramètres, des identifiants de requête, etc.
Cependant, il est important de se rappeler :
- Le contexte est destiné à transmettre des données liées à la requête ou à l’opération, et non à transmettre de grandes structures ou de la logique métier.
- Les clés doivent être uniques et sont généralement définies par des types ou des types spéciaux de clés pour éviter les conflits.
Exemple de transmission de valeur via le contexte :
ctx := context.Background()
ctx = context.WithValue(ctx, "userID", 42)
func doSomething(ctx context.Context) {
userID := ctx.Value("userID")
fmt.Println("ID utilisateur :", userID)
}
doSomething(ctx)
Ainsi, oui, il est possible de transmettre des variables via le contexte, mais avec prudence et dans le cadre des pratiques recommandées.