Junior — Middle
What is the purpose of using the function context.WithValue in managing execution context in Go?
sobes.tech AI
Answer from AI
The context.WithValue function in Go is used to create a new context that contains a key-value pair. This allows passing additional data through a chain of function calls without changing their signatures.
The main purpose is to provide a safe and convenient way to pass information related to a request or operation, such as user identifiers, settings, or metadata.
Example of usage:
ctx := context.Background()
ctxWithValue := context.WithValue(ctx, "userID", 42)
// In a function accepting ctx:
userID := ctx.Value("userID")
if userID != nil {
fmt.Println("User ID:", userID)
}
It is important not to use context.WithValue for passing large structures or for controlling logic, but only for small, immutable data related to the execution context.