Sobes.tech
Junior — Middle

Jakie elementy można uwzględnić w bieżącym kontekście wykonania programu?

sobes.tech AI

Odpowiedź od AI

W Go (Golang) aktualny kontekst wykonania programu jest zwykle reprezentowany przez typ context.Context. Służy do przekazywania informacji o stanie wykonania, anulowaniu operacji i limitach czasowych między gorutynami.

W kontekście można zawrzeć następujące elementy:

  • Anulowanie (Cancellation) — sygnał, że operacja powinna zostać przerwana.
  • Termin (Deadline) — czas, po którym operacja jest uznana za przeterminowaną.
  • Wartości (Values) — pary klucz-wartość do przekazywania dodatkowych informacji (np. identyfikatory żądań, tokeny uwierzytelniania).

Przykład użycia:

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

ctx = context.WithValue(ctx, "requestID", "12345")

// Przekaż ctx do funkcji, które mogą sprawdzić anulowanie, termin lub uzyskać wartości

W ten sposób, kontekst zawiera metadane i zarządza cyklem życia operacji w programie.