Sobes.tech
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.