代码拉取完成,页面将自动刷新
context 的很重要的一个作用是在各个子 routine 之间传递一些共享值,例如用户的 id。
使用 context.WithValue 创建一个值节点,并把它们链接到树形结构中。
func main() {
ctx := context.WithValue(context.Background(), "userid", "1234567")
}
只要能获取到该 ctx 的协程都可以获取到该值。
func Handler(ctx context.Context) {
fmt.Println(ctx.Value("userid"))
wg.Done()
}
func main() {
ctx := context.WithValue(context.Background(), "userid", "1234567")
wg.Add(1)
go Handler(ctx)
wg.Wait()
}
值得注意,如果 ctx 最终穿起来是一个树形结构。所以所有该 ctx 派生的 context 上执行 WithValue 都能获取到该值。 详细例子参见
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。