Junior — Middle
Kako razlikovati korišćenje Context.TODO od Context.Background u kodu, i u kojim slučajevima se ove funkcije primenjuju?
sobes.tech АИ
Одговор од АИ
U Go programskom jeziku, context.Background() i context.TODO() vraćaju kontekst, ali se koriste u različitim situacijama:
-
context.Background()— to je osnovni, prazan kontekst koji se obično koristi kao korenski kontekst u glavnim funkcijama, testovima ili prilikom inicijalizacije. To znači da kontekst ne otkazuje i ne sadrži vrednosti. -
context.TODO()— koristi se kao privremeni zamenski kontekst na mestima u kodu gde kontekst još nije definisan ili nije odlučeno koji kontekst koristiti. To je signal za programere da će kasnije razmisliti i zameniti ga odgovarajućim kontekstom.
Primer:
func main() {
ctx := context.Background() // korenski kontekst
process(ctx)
}
func process(ctx context.Context) {
// ako još ne znamo koji kontekst da prosledimo dalje
childCtx := context.TODO()
doSomething(childCtx)
}
Ukratko:
- Koristite
Background()kao korenski kontekst. - Koristite
TODO()kao privremeni zamenski kontekst kada još nije definisan.