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)
}
Препоръчително е да използвате типове ключове, които не влизат в конфликт с други пакети, например собствени типове ключове, за да избегнете колизии.