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.