Junior — Middle
Comment distinguer l'utilisation de Context.TODO de Context.Background dans le code, et dans quels cas ces fonctions sont-elles utilisées?
sobes.tech IA
Réponse de l'IA
En Go, context.Background() et context.TODO() renvoient un contexte, mais sont utilisés dans différentes situations:
-
context.Background()— c'est le contexte de base, vide, généralement utilisé comme contexte racine dans les fonctions principales, les tests ou lors de l'initialisation. Cela signifie que le contexte n'est pas annulé et ne contient pas de valeurs. -
context.TODO()— est utilisé comme un espace réservé dans les endroits du code où le contexte n'est pas encore défini ou où il n'a pas été décidé quel contexte utiliser. C'est un signal pour les développeurs qu'ils doivent y réfléchir plus tard et le remplacer par un contexte approprié.
Exemple:
func main() {
ctx := context.Background() // contexte racine
process(ctx)
}
func process(ctx context.Context) {
// si nous ne savons pas encore quel contexte transmettre
childCtx := context.TODO()
doSomething(childCtx)
}
En résumé:
- Utilisez
Background()comme contexte racine. - Utilisez
TODO()comme un espace réservé temporaire lorsque le contexte n'est pas encore défini.