Sobes.tech
Junior — Middle

Je možné prenášať premenné cez kontext vykonávania?

sobes.tech AI

Odpoveď od AI

V jazyku Go je možné pomocou kontextu (context.Context) prenášať hodnoty pomocou funkcie context.WithValue. To umožňuje prenášať premenné (kľúč-hodnota) nadol v reťazci volaní, napríklad na odovzdanie parametrov, identifikátorov požiadaviek a pod.

Je však dôležité si zapamätať:

  • Kontext je určený na prenos údajov súvisiacich s požiadavkou alebo operáciou, nie na prenos veľkých štruktúr alebo biznis logiky.
  • Kľúče by mali byť jedinečné a zvyčajne sú definované pomocou typov alebo špeciálnych typov kľúčov, aby sa predišlo konfliktom.

Príklad prenosu hodnoty cez kontext:

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

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

doSomething(ctx)

Áno, premenné je možné prenášať cez kontext, ale s opatrnosťou a v súlade s odporúčanými praktikami.