Junior — Middle
Jaka jest rola i cel kontekstu w języku programowania Go?
sobes.tech AI
Odpowiedź od AI
W języku Go kontekst (context.Context) jest używany do zarządzania czasem życia operacji, przekazywania sygnałów anulowania i przekazywania wartości między gorutynami i funkcjami.
Główne zadania kontekstu:
- Anulowanie operacji: umożliwia anulowanie długotrwałych lub blokujących operacji, na przykład w przypadku przekroczenia limitu czasu lub anulowania żądania.
- Przekazywanie terminów: można ustawić czas, po którym operacja powinna zostać automatycznie przerwana.
- Przekazywanie wartości: pozwala na przekazywanie danych związanych z żądaniem lub operacją, takich jak identyfikatory użytkowników, tokeny itp.
Przykład użycia:
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()
// Przekazujemy ctx do funkcji, która wykonuje długą operację
result, err := LongOperation(ctx)
if err == context.DeadlineExceeded {
fmt.Println("Operacja przerwana z powodu przekroczenia limitu czasu")
}
Kontekst pomaga pisać bardziej zarządzalny i responsywny kod, szczególnie w aplikacjach sieciowych i współbieżnych.