context.WithValue:添加多个键值对
Go 中的 context 包允许开发者将请求特定的数据传递给请求处理使用 context.WithValue() 函数的函数。此函数使用提供的键值对创建一个新上下文,它是父上下文的副本。
上下文中的多个键值对
当使用多个键值对,您有多种选择:
type Values struct { m map[string]string } func (v Values) Get(key string) string { return v.m[key] }
使用此结构,您可以将其添加到上下文,如下所示:
v := Values{map[string]string{ "1": "one", "2": "two", }} c := context.WithValue(c, "myvalues", v) fmt.Println(c.Value("myvalues").(Values).Get("2")) // Prints "two"
性能注意事项
最佳方法取决于具体用例:
请记住 context.Context 是不可变的,因此每次添加新的键值对时,都会创建一个新的上下文。选择方法时请考虑键值对的数量和性能要求。
以上是如何使用 context.WithValue() 高效传递多个键值对?的详细内容。更多信息请关注PHP中文网其他相关文章!