赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 1425 |
最后登录 | 2013-5-26 |
在线时间 | 46 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 46 小时
- 注册时间
- 2011-9-13
- 帖子
- 55
|
6楼
楼主 |
发表于 2012-10-21 18:10:48
|
只看该作者
本帖最后由 最后的信徒 于 2012-10-21 18:18 编辑
@电锤斧王@serena718
输出结果有5个,
第一次循环:假设b[1]=1,则输出[[0,1]]
第二次循环:假设b[1]=2,则输出[[0,2],[0,2]] 》》》》为什么不是[[0,1],[0,2]]呢???!!!
......
由此可见,第一次循环所"push"的值,被后面的值更新了。
要不我们改改代码- a=[]
- b=[]
- b[0]=0
- for i in 1..5
- b[1]=i
- a.push(b)
- p a
- end
复制代码 理想输出的值:
[[0,1]]
[[0,1],[0,2]]
[[0,1],[0,2],[0,3]]
[[0,1],[0,2],[0,3],[0,4]]
[[0,1],[0,2],[0,3],[0,4],[0,5]]
实际输出的值:
[[0,1]]
[[0,2],[0,2]]
[[0,3],[0,3],[0,3]]
[[0,4],[0,4],[0,4],[0,4]]
[[0,5],[0,5],[0,5],[0,5],[0,5]]
为什么会这样呢????
|
|