Вопрос: Как правильно обрабатывать контекст (context.Context) в функциях и горутинах?

Go Junior Без компании
Вопрос: Как правильно обрабатывать контекст (context.Context) в функциях и горутинах?
Ответы
Обычно ctx — первый параметр функции. Проверяют ctx.Done() и используют ctx в I/O (HTTP/DB). ```go package main import ( "context" "fmt" "time" ) func work(ctx context.Context) error { select { case <-time.After(200 * time.Millisecond): return nil case <-ctx.Done(): return ctx.Err() } } func main() { ctx, cancel := context.WithTimeout(context.Background(), 50*time.Millisecond) defer cancel() err := work(ctx) fmt.Println("err:", err) } ```