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