Go

Pakiet context

context.Context, anulowanie, timeouty, deadline'y, wartości, WithCancel, WithTimeout

20 pytań z rozmów·
Mid-Level
1

Jaka jest główna rola pakietu context w Go?

Odpowiedź

Pakiet context pozwala spójnie zarządzać timeoutami, anulowaniem i deadline'ami w całym łańcuchu wywołań. Zapobiega to powstawaniu goroutine zombie, które działają dalej, mimo że ich wynik nie jest już potrzebny. Zawsze przekazuj context jako pierwszy parametr i regularnie sprawdzaj Done() w długich operacjach, aby respektować anulowanie.

2

Która funkcja tworzy pusty context bez deadline'u i anulowania?

Odpowiedź

context.Background() zwraca pusty, nieanulowany context bez deadline'u i wartości. Służy jako punkt wyjścia do tworzenia kontekstów pochodnych i jest zwykle używany w main, inicjalizacji lub testach. Nigdy nie używaj nil jako context, ponieważ powoduje to panic przy dostępie do metod.

3

Jaka jest różnica między context.Background() a context.TODO()?

Odpowiedź

context.TODO() służy jako placeholder, gdy odpowiedni context nie jest jeszcze jasny lub dostępny podczas tworzenia. context.Background() jest używany dla rzeczywistych punktów wejścia, takich jak main lub handlery HTTP. Oba są funkcjonalnie identyczne, ale TODO() dokumentuje tymczasowy zamiar, który powinien zostać później zastąpiony.

4

Jak utworzyć context, który można anulować ręcznie?

5

Który channel pozwala wykryć anulowanie context?

+17 pytań z rozmów

Opanuj Go na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo