Sobes.tech
Junior — Middle

შეგიძლიათ ახსნათ, რა მიზნით გამოიყენება ფუნქცია context.WithValue Go-ში და როგორ მუშაობს ის?

sobes.tech AI

პასუხი AI-სგან

Go-ში context.WithValue ფუნქცია გამოიყენება ახალი კონტექსტის შესაქმნელად, რომელიც შეიცავს გასაღებს-ღირებულების წყვილს. ეს საშუალებას აძლევს დამატებითი მონაცემების გადაცემას ზარის ჯაჭვში, არ შეცვალოს ფუნქციების ხელმოწერები.

ეს ასე მუშაობს: თქვენ გადასცემთ ორიგინალურ კონტექსტს, გასაღებს და მნიშვნელობას, და იღებთ ახალ კონტექსტს, საიდანაც შეგიძლიათ ამ მნიშვნელობის ამოღება context.Value(key)-ის გამოყენებით.

მაგალითი:

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

userID := ctxWithValue.Value("userID")
fmt.Println(userID) // გამოდის: 42

მნიშვნელოვანია, გამოიყენოთ უნიკალური ტიპები გასაღებისთვის, რათა თავიდან აიცილოთ კონფლიქტები.