Junior — Middle
Puoi spiegare a cosa serve la funzione context.WithValue in Go e come funziona?
sobes.tech AI
Risposta dell'AI
La funzione context.WithValue in Go viene utilizzata per creare un nuovo contesto che contiene una coppia chiave-valore. Questo permette di trasmettere dati aggiuntivi attraverso la catena di chiamate senza modificare le firme delle funzioni.
Funziona così: fornisci il contesto originale, la chiave e il valore, e ottieni un nuovo contesto dal quale puoi estrarre questo valore usando context.Value(key).
Esempio:
ctx := context.Background()
ctxWithValue := context.WithValue(ctx, "userID", 42)
userID := ctxWithValue.Value("userID")
fmt.Println(userID) // Stampa: 42
È importante usare tipi di chiavi unici per evitare conflitti, ad esempio definendo un tipo proprio per le chiavi.