Junior — Middle
Каква информация може да се предава чрез контекста в приложението?
sobes.tech AI
Отговор от AI
В Go обикновено се предават информация, свързана с управлението на жизнения цикъл на заявка или операция, чрез context (context.Context`), например:
- Отмяна на операция (чрез канала
Done()). - Крайни срокове и таймаути (чрез
Deadline()). - Стойности, необходими през цялата верига от извиквания, като идентификатори на заявки, токени за удостоверяване, метаданни.
Важно: в контекста не трябва да се поставят големи обекти, състояния или данни, които не са свързани с управлението на заявката, за да не се наруши предназначението му и да се избегнат течове на памет.
Пример за предаване на стойност чрез контекста:
ctx := context.WithValue(context.Background(), "requestID", "12345")
requestID := ctx.Value("requestID")