Sobes.tech
Junior — Middle

Jaki jest cel używania kontekstu w Twoim projekcie lub kodzie?

sobes.tech AI

Odpowiedź od AI

W Go, kontekst (context.Context) jest używany do przekazywania informacji o stanie wykonania, takich jak limity czasowe, terminy i anulowania operacji, a także do przekazywania wartości między gorutynami.

Cel użycia kontekstu:

  • Zarządzanie czasem życia żądań i operacji (np. anulowanie żądania HTTP po zamknięciu klienta).
  • Przekazywanie metadanych (np. identyfikatory żądań do logowania).
  • Zapewnienie możliwości anulowania łańcucha wywołań w razie potrzeby.

Przykład użycia:

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

// Przekazujemy ctx do funkcji, która może zostać przerwana przez limit czasu
result, err := doSomething(ctx)
if err == context.DeadlineExceeded {
    fmt.Println("Operacja przerwana z powodu przekroczenia limitu czasu")
}

W ten sposób kontekst pomaga kontrolować wykonanie i wymieniać dane między komponentami aplikacji.