Middle+
Vai var iestatīt struktūru kontekstā, izmantojot context.WithValue?
sobes.tech AI
Atbilde no AI
Jā, Go var ievietot struktūru kontekstā, izmantojot context.WithValue. Tomēr ir svarīgi atcerēties, ka konteksts ir paredzēts datu nodošanai, kas saistīti ar pieprasījumu, piemēram, laika ierobežojumi, termiņi un metadati, nevis lielu vai maināmu struktūru nodošanai.
Piemērs:
type User struct {
ID int
Name string
}
ctx := context.Background()
user := &User{ID: 1, Name: "Alice"}
ctx = context.WithValue(ctx, "user", user)
// Iegūšana
u, ok := ctx.Value("user").(*User)
if ok {
fmt.Println(u.Name)
}
Ieteicams izmantot atslēgu tipus, kas nesaskan ar citiem pakotnēm, piemēram, savus atslēgu tipus, lai izvairītos no sadursmēm.