Sobes.tech
Junior — Middle

Je možné prenášať údaje cez kontext v softvérových aplikáciách?

sobes.tech AI

Odpoveď od AI

Áno, v jazyku Go (Golang) je možné prenášať údaje medzi funkciami a gorutinami pomocou kontextu (context.Context).

Kontext je určený na prenos signálov o zrušení, časových limitov a hodnôt súvisiacich s požiadavkou alebo operáciou. Na prenos údajov sa používa metóda context.WithValue, ktorá vytvára nový kontext s daným kľúčom a hodnotou.

Príklad prenosu údajov cez kontext:

import (
    "context"
    "fmt"
)

func main() {
    ctx := context.Background()
    ctx = context.WithValue(ctx, "userID", 42)

    process(ctx)
}

func process(ctx context.Context) {
    userID := ctx.Value("userID")
    fmt.Println("ID používateľa z kontextu:", userID)
}

Je však dôležité pamätať, že kontext nie je určený na prenos veľkých objemov dát alebo na ukladanie stavu. Jeho hlavnou funkciou je prenos informácií súvisiacich s riadením životného cyklu operácie (napríklad, časové limity, zrušenia) a malých doplnkových informácií.

Preto je prenos dát cez kontext možný a široko používaný, ale s dodržiavaním odporúčaní a obmedzení.