欢喜斗地主
400-700-1307

【GO+区块链面试题】go执行的随机?#38498;?#38381;包

2019-01-26 17:05
下面的代码会输出什么,并说明原因
 
1.func main() {
2.runtime.GOMAXPROCS(1)
3.wg := sync.WaitGroup{}
4.wg.Add(20)
5.for i := 0; i < 10; i++ {
6.go func() {
7.fmt.Println("A: ", i)
8.wg.Done()
9.}()
10.}
11.for i := 0; i < 10; i++ {
12.go func(i int) {
13.fmt.Println("B: ", i)
14.wg.Done()
15.}(i)
16.}
17.wg.Wait()
18.}
考点:go执行的随机?#38498;?#38381;包
解答:
谁也不知道执行后打印的顺序是什么样的,所以只能说是随机数字。 但是A:均为输出10,B:从0~9输出(顺序不定)。 第一个go func中i是外部for的一个变量,地址不变化。遍历完成后,最终i=10。 故go func执行时,i的值始终是10。
第二个go func中i是函数参数,与外部for中的i完全是两个变量。 尾部(i)将发生值拷贝,go func内部指向值拷贝地址。

开班信息

当前校区

?#26412;?#26657;区
  • ?#26412;?#26657;区
  • 上海校区
  • 广州校区
  • 沈阳校区
  • 杭州校区
  • 南京校区
  • 郑州校区
  • 成都校区
  • 深圳校区
  • 西安校区
  • 苏州校区
  • 深圳沙井
  • 深圳观澜
  • 深圳龙岗
  • 武汉校区
  • 西宁校区
  • 石家庄校区
  • 湖北咸宁
  • 广东惠州
  • 广东佛山
  • ?#26412;?/span> UI/UE就业班 2019-04-17 报名中
  • ?#26412;?/span> PHP就业班 2019-04-18 报名中
  • ?#26412;?/span> Java训练营 2019-04-24 报名中
  • ?#26412;?/span> Python训练营 2019-04-24 报名中
  • ?#26412;?/span> Java就业班 2019-05-09 报名中
  • ?#26412;?/span> Python就业班 2019-05-09 报名中
  • ?#26412;?/span> PHP就业班 2019-05-16 报名中

                    Copyright © 2007-2019 IT?#20540;?#36830;教育 版权所有 京ICP备11018177号  京公网安备 11010802026987号

                    欢喜斗地主 天易平台app怎么下载 pc蛋蛋预测软件 新浪围棋大厅 新加坡快乐8开奖和值 36棋牌冻结账号 澳洲幸运10免费计划软件下载 股票涨跌怎么看新手必看 大乐透胆拖奖金查询表 mianfei买彩票 福彩中心排列三开机号