Sobes.tech
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.