go大佬在这里【干了3年go,吹嘘下不过分吧】 给你解释下这段代码。 涉及到协程的一些知识。 第一段代码,由于循环变量未传入到协程,协程与for循环使用的是同一个循环变量 i, 协程是并发不阻塞的。也就是在执行协程的同时,for循环也在执行。所以打印的结果其实是不确定的,要先理解并发的概念,并发并发就是不分先后,不分先后的意思是不确定先后,但实际执行其实是有先后的,只是这个先后是不确定的。所以实际打印的结果跟各自的机器有关系,你换一台机器打印的结果可能就不一样了。 第二段代码,循环变量 i 传入到协程里,协程都会有一个协程栈空间,这个i传入到协程占栈空间里,也就创建了一个副本,copy了一份,所以每个协程里的值其实是确定的,也就是for循环的i传入的值。 基础知识点:协程,并发,协程栈空间。多说一句,这并不是什么bug哈。
点赞 评论

相关推荐

牛客网
牛客企业服务