Sobes.tech
Middle+

Contextga structni context.WithValue yordamida qo'yish mumkinmi?

sobes.tech AI

AIdan javob

Ha, Go'da context.WithValue yordamida tuzilmani kontekstga joylashtirish mumkin. Biroq, kontekst so'rov bilan bog'liq ma'lumotlarni, masalan, vaqt chegaralari, muddatlar va metama'lumotlarni uzatish uchun mo'ljallanganligini, katta yoki o'zgartiriladigan tuzilmalarni uzatish uchun emasligini esda tutish muhimdir.

Misol:

type User struct {
    ID   int
    Name string
}

ctx := context.Background()
user := &User{ID: 1, Name: "Alice"}
ctx = context.WithValue(ctx, "user", user)

// Olish
u, ok := ctx.Value("user").(*User)
if ok {
    fmt.Println(u.Name)
}

Kalit turlaridan foydalanish tavsiya etiladi, ular boshqa paketlar bilan to'qnashuvlarni oldini olish uchun, masalan, o'z kalit turlarini ishlatish, to'qnashuvlarni oldini olish uchun.