Programming Languages
Go
Subjective
Oct 04, 2025
Explain the context package and its use cases.
Detailed Explanation
Context Package:
• Carries deadlines, cancellation signals, values
• Request-scoped values
• Cancellation propagation
• Timeout handling
• Standard library integration
Types:
• context.Background(): Root context
• context.TODO(): Placeholder
• context.WithCancel(): Cancellation
• context.WithTimeout(): Timeout
• context.WithDeadline(): Absolute deadline
• context.WithValue(): Carry values
Example:
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
req, _ := http.NewRequestWithContext(ctx, "GET", url, nil)
resp, err := client.Do(req)
Best practices:
• Pass context as first parameter
• Don't store contexts in structs
• Use context.Value sparingly
• Always call cancel functions
Discussion (0)
No comments yet. Be the first to share your thoughts!
Share Your Thoughts