Sobes.tech
Junior — Middle

Pode explicar para que serve a função context.WithValue em Go e como ela funciona?

sobes.tech IA

Resposta da IA

A função context.WithValue em Go é usada para criar um novo contexto que contém um par chave-valor. Isso permite passar dados adicionais através da cadeia de chamadas, sem alterar as assinaturas das funções.

Funciona assim: você fornece o contexto original, a chave e o valor, e obtém um novo contexto do qual pode extrair esse valor usando context.Value(key).

Exemplo:

ctx := context.Background()
ctxWithValue := context.WithValue(ctx, "userID", 42)

userID := ctxWithValue.Value("userID")
fmt.Println(userID) // Vai imprimir: 42

É importante usar tipos de chaves únicos para evitar conflitos, por exemplo, definindo um tipo próprio para as chaves.