Sobes.tech
Junior — Middle

Care este rolul și scopul contextului în limbajul de programare Go?

sobes.tech AI

Răspuns de la AI

În limbajul Go, contextul (context.Context) este utilizat pentru a gestiona durata de viață a operațiunilor, a transmite semnale de anulare și a transmite valori între goroutines și funcții.

Sarcinile principale ale contextului:

  • Anularea operațiilor: permite anularea operațiunilor lungi sau blocante, de exemplu, în cazul expirării timpului sau anulării unei solicitări.
  • Transmiterea termenelor limită: se poate seta un timp după care operațiunea trebuie să fie întreruptă automat.
  • Transmiterea valorilor: permite transmiterea datelor legate de solicitare sau operațiune, cum ar fi identificatori de utilizatori, tokenuri etc.

Exemplu de utilizare:

ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()

// Transmiteți ctx către o funcție care efectuează o operațiune lungă
result, err := LongOperation(ctx)
if err == context.DeadlineExceeded {
    fmt.Println("Operațiunea a fost întreruptă din cauza expirării")
}

Contextul ajută la scrierea unui cod mai gestionabil și receptiv, în special în aplicații de rețea și concurente.