Ruby中的二维数组初始化的一个小问题
来源:互联网 发布:mac删除系统自带软件 编辑:程序博客网 时间:2024/06/05 02:09
我们在Ruby中初始化一个5*5的二维数组,可以写成
data = Array.new(5, Array.new(5, 0))
也可以写成 data = Array.new(5){ Array.new(5, 0)}
初始化完成后,我可以随便给数组中某个元素赋格值,比如
data[2][2] = 2
我们会发现采用第二种初始化方式,输出是正常的,而采用第一种方式初始化,则每行的第3个数据都被赋值成了2。
这是因为,采用Array.new(size, obj)初始化时,数组中将保存obj的同一引用,所以一个修改了,其他的数组元素也会跟着改变。
data = Array.new(5, Array.new(5, 0))
也可以写成 data = Array.new(5){ Array.new(5, 0)}
初始化完成后,我可以随便给数组中某个元素赋格值,比如
data[2][2] = 2
我们会发现采用第二种初始化方式,输出是正常的,而采用第一种方式初始化,则每行的第3个数据都被赋值成了2。
这是因为,采用Array.new(size, obj)初始化时,数组中将保存obj的同一引用,所以一个修改了,其他的数组元素也会跟着改变。
- Ruby中的二维数组初始化的一个小问题
- Ruby中的二维数组初始化的一个小问题
- python初始化二维数组的小问题
- 转 关于二维数组初始化的一个小细节
- 二维数组初始化问题
- 二维数组的初始化
- 二维数组的初始化
- 二维数组的初始化
- 二维数组的初始化
- 二维数组的初始化
- 二维数组的初始化
- 二维数组的初始化
- 二维数组的初始化
- 二维数组的初始化
- 二维数组的初始化
- 二维数组的初始化
- 二维数组的初始化
- 关于如何初始化一个类内的静态二维数组变量问题
- [翻译].NET牛人应该知道些什么
- 创建“维护计划”时遇到的问题
- db2 索引 设计准则
- UltraEdit-32 v14.10 简体中文版
- Visual Studio 2008中的Code Performance Analysis
- Ruby中的二维数组初始化的一个小问题
- Call Unmanaged Code. Part 1 - Simple DLLImport
- Call Unmanaged Code Part 2 - Marshal Class
- 欲擒故纵——我看微软的自由作息时间制度
- Microsoft SQL Server 2000 的数据转换服务
- 1个完整的上传图片的类
- 定时器:为 Windows 实现一个连续更新,高精度的时间供应器
- jsf(一)
- VC点滴