Junior — Middle
Използвали ли сте някога функцията context.WithValue във вашия код?
sobes.tech AI
Отговор от AI
Да, функцията context.WithValue в Go се използва за предаване на стойности в изпълнителния контекст, обикновено за предаване на данни между функции и горутини без промяна на подписа на функциите.
Важно е да се помни, че контекстът е предназначен за предаване на информация, свързана с управлението на жизнения цикъл (например, таймаути, отменяния), а не за предаване на големи обеми данни или параметри.
Пример за използване:
ctx := context.Background()
ctx = context.WithValue(ctx, "userID", 12345)
func process(ctx context.Context) {
userID := ctx.Value("userID")
fmt.Println("ID на потребителя:", userID)
}
process(ctx)
По този начин, context.WithValue помага за предаването на допълнителни данни в веригата от извиквания, като същевременно запазва възможността за отменяне и задаване на таймаути.