Sobes.tech
Junior — Middle

Ի՞նչ տեղեկություններ կարելի է փոխանցել հավելվածում կոնտեքստի միջոցով։

sobes.tech AI

Պատասխան AI-ից

Go-ում սովորաբար տեղեկությունները, որոնք կապված են հարցման կամ գործողության կյանքի ցիկլի կառավարման հետ, փոխանցվում են context (context.Context`) միջոցով, օրինակ՝

  • Գործողության չեղարկում (Done() ալիքի միջոցով):
  • Ժամկետներ և ժամանակային սահմանափակումներ (Deadline()):
  • Ամբողջ զանգվածի ընթացքում անհրաժեշտ արժեքներ, օրինակ՝ հարցումների նույնականացուցիչներ, հաստատման տոքեններ, մետադատվյալներ:

Մեծ օբյեկտներ, վիճակներ կամ տվյալներ, որոնք չեն կապված հարցման կառավարման հետ, չպետք է տեղադրվեն կոնտեքստում՝ նրա նպատակին չվնասելու և հիշողության արտահոսքերը կանխելու համար:

Կոնտեքստով արժեք փոխանցելու օրինակ՝

ctx := context.WithValue(context.Background(), "requestID", "12345")
requestID := ctx.Value("requestID")