Sobes.tech
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.