代码如下:packagemainimport("fmt""sync""time")vara=[...]int{1,2,3,4,5}funcRun(){fmt.Println("begin")varwgsync.WaitGroupwg.Add(len(a))for_,i:=rangea{/*gofunc(iint){//函数变量是以值的方式传递的fmt.Printf("getvalue%d\n",i)time.Sleep(time.Second)wg.Done()}(i)*/gofunc(){fmt.Printf("getvalue%d\n",i)time.Sleep(time.Second)wg.Done()}()}wg.Wait()fmt.Println("end")}funcmain(){Run()}运行结果输出:begingetvalue5getvalue5getvalue5getvalue5getvalue5end不给匿名函数传参的话,为什么只能获取最后一个值,其中原理还是想不太明白,请各位大哥给讲解下,谢谢!!!
狐的传说
长风秋雁
相关分类