Junior — Middle
Použili ste niekedy funkciu context.WithValue vo svojom kóde?
sobes.tech AI
Odpoveď od AI
Áno, funkcia context.WithValue v jazyku Go sa používa na odovzdávanie hodnôt v kontexte vykonávania, zvyčajne na prenos dát medzi funkciami a gorutinami bez zmeny podpisu funkcií.
Je dôležité si uvedomiť, že kontext je určený na prenos informácií súvisiacich s riadením životného cyklu (napríklad časové limity, zrušenia), a nie na prenos veľkých objemov dát alebo parametrov.
Príklad použitia:
ctx := context.Background()
ctx = context.WithValue(ctx, "userID", 12345)
func process(ctx context.Context) {
userID := ctx.Value("userID")
fmt.Println("ID používateľa:", userID)
}
process(ctx)
Týmto spôsobom pomáha context.WithValue prenášať dodatočné údaje v reťazci volaní, pričom zachováva možnosť zrušenia a nastavenia časových limitov.