Sobes.tech
Junior — Middle

Můžete vysvětlit, k čemu slouží funkce context.WithValue v Go a jak funguje?

sobes.tech AI

Odpověď od AI

Funkce context.WithValue v Go se používá k vytvoření nového kontextu, který obsahuje pár klíč-hodnota. To umožňuje předávat další data přes řetězec volání, aniž by se měnily podpisy funkcí.

Funguje takto: zadáte původní kontext, klíč a hodnotu, a získáte nový kontext, ze kterého lze tuto hodnotu získat pomocí context.Value(key).

Příklad:

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

userID := ctxWithValue.Value("userID")
fmt.Println(userID) // Vypíše: 42

Je důležité používat unikátní typy klíčů, aby nedocházelo ke konfliktům, například definováním vlastního typu pro klíče.