Middle+
Կարո՞ղ է կառուցվածքը տեղադրել կոնտեքստում՝ օգտագործելով context.WithValue։
sobes.tech AI
Պատասխան AI-ից
Այո, Go-ում դուք կարող եք տեղադրել կառուցվածք context.WithValue-ի միջոցով։ Սակայն կարևոր է հիշել, որ կոնտեքստը նախատեսված է հարցման հետ կապված տվյալների փոխանցման համար, ինչպիսիք են ժամանակային սահմանափակումները, ժամկետները և մետադատները, և ոչ մեծ կամ փոփոխական կառուցվածքների փոխանցման համար։
Օրինակ՝
type User struct {
ID int
Name string
}
ctx := context.Background()
user := &User{ID: 1, Name: "Alice"}
ctx = context.WithValue(ctx, "user", user)
// Հետազոտում
u, ok := ctx.Value("user").(*User)
if ok {
fmt.Println(u.Name)
}
Առաջարկվում է օգտագործել այնպիսի բանալիների տեսակներ, որոնք չեն բախվում այլ փաթեթների հետ, օրինակ՝ սեփական բանալի տեսակներ, որպեսզի խուսափել բախումներից։