引言
go的上下文官方说明有点难懂,可能是我太菜了,经过我自己的研究,总结了一下自己的想法
context上下文
顾名思义,context用于go代码传输上下文信息,例如在方法调用之间传递参数,传递栈信息等...,到test方法时附加了一个新的值,test方法额外覆盖了这个值,重新将值附加到了test2,
可以看出:上下文其中的一个作用就是在调用栈中传递参数
context声明获取
context的结构体都基于...todoCtx := context.Todo()
要注意的是,
background和todo 返回的值没有任何区别,只是为了区分使用场景而使用了2个不同的方法和变量
background用于主函数初始化...,测试中,在顶级调用栈时使用
而todo 用于不清楚要使用什么上下文的时候使用
context使用
上下文使用的步骤为:
1:声明一个基本context变量
2:通过context包的其他方法进行衍生赋值一个新的...从上文可以看出,context最基本的作用为通过一个参数,连接协程/方法 栈的上下文,使其能够进行上下文通信
具体的应用场景有:
1:传递参数
2:超时控制,例如curl的时候控制超时时间
3:主动控制协程的退出