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.