`
rloc2003
  • 浏览: 57800 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

Ruby中的二维数组初始化的一个小问题

    博客分类:
  • ruby
阅读更多

我们在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的同一引用,所以一个修改了,其他的数组元素也会跟着改变。

分享到:
评论

相关推荐

    Ruby简明教程之数组和Hash介绍

    今天学习的是数组和Hash,数组在很多编程语言中都能常常用到...name = [] #声明了一个空数组,未定义的数组 name = [1, “song”, 3, “小林”] 2. 如何取得数组元素呢? 在Ruby通过 数组名[index] 来获取数组元素,

    preload_pluck:高效地将数据加载到二维数组中,无需 ActiveRecord 模型创建开销

    向 ActiveRecord 添加一个preload_pluck方法,该方法允许使用 Rails 4 preload加载样式查询连接表 ( preload ),并返回一个没有 ActiveRecord 模型创建开销 ( pluck ) 的二维数组。 典型的用例是用于查询和显示...

    二维数组应用-扫雷小游戏scanning-land-mine.zip

    C#是.NET框架的一部分,这意味着它可以与其他.NET语言(如Visual Basic .NET、F#等)以及.NET框架中的各种库和工具进行交互使用。 【引流】 编程语言和开发技术:如Java、$C++、Python、JavaScript、Ruby等。 数据库...

    ruby 数组处理大全.doc

    ruby数组处理大全 如函数名称 说明 示例 &数组与,返回两数组的交集 [1,2] & [2,3] =>[2] *复制数组n次 [1,2]*2 => [1,2,1,2] +返回两数组的并集,但不排除重复元素 [1,2]+[2,3] =>[1,2,2,3] 追加元素,但不...

    ruby数组

    ruby数组

    Ruby中数组的一些相关使用方法

    Ruby数组是有序的,任何对象的??整数索引的集合。...有许多方法来创建或初始化一个数组。一种方式是 new 类方法: names = Array.new 可以设置一个数组的大小,在数组创建的时候: names = Array.new

    Ruby创建数组方法总结

    您可以通过创建一个新的数组对象并将其存储在一个变量中来创建一个空数组。这个数组将为空;您必须用其他变量填充它才能使用它。如果要从键盘或文件中读取内容列表,这是创建变量的一种常见方法。 在下面的示例程序中...

    Ruby数组(Array)学习笔记

    Ruby中的数组是动态数组,存储的数据不用限定类型,数组的长度是根据存储需要动态扩展,所以,在进行数据定义的时候,只用用最简单的方式new一个Array对象就可以了,可以使用以下几种方式: 代码如下: arr1=[] #最...

    10Ruby 数组.docx

    Ruby还有一个强大的标准库,提供了丰富的工具和功能,使开发者能够快速构建各种类型的应用程序。Ruby还有一个流行的Web框架Ruby on Rails,被广泛应用于Web开发领域。总的来说,Ruby是一种灵活、强大且易于学习的...

    Ruby-ActiveModel的自定义验证用于检查数组是否包含在另一个中

    Active Model的自定义验证,用于检查数组是否包含在另一个中

    Ruby中的数组和散列表的使用详解

    使用数组字面量(array literal)–即方括号之间放一组元素–可以创建和初始化新的数组对象。有了数组对象,在方括号之间提供索引便可以访问单个元素,如下例所示,注意Ruby数组的索引从零开始。 a=[1,'cat',3.14] ...

    Ruby的字符串与数组求最大值的相关问题讨论

    max方法 ...ruby中给出的例子是 # enum.max -> obj # enum.max { |a, b| block } -> obj #a = %w(albatross dog horse) #a.max => horse # a.max { |a, b| a.length <=> b.length } #=> albatro

    Ruby常见面试题.pdf

    8. Ruby中的数组(Array)和哈希(Hash)有什么区别?请说明在Ruby中数组和哈希的不同特点。 9. 什么是Ruby中的块(Block)和迭代器(Iterator)?请简要介绍在Ruby中块和迭代器的概念。 10. 在Ruby中如何进行模块...

    js 数组实现一个类似ruby的迭代器

    分为如下几节: ·基本实现 ·在迭代中引用原来的对象,或者直接改变数组的值而不是返回一个新数组 ·向迭代传入无限多的参数 ·基本实现 今天突然发现js的数组处理起来真是麻烦,代码一些就是一大堆,相比起ruby的迭代...

    Ruby元编程第二版中文

    Ruby元编程第二版,中文影印版,便于英文不好的同学们学习

    ruby 数组使用教程

    你通过在方括号里列出元素并用逗号将它们相互隔开来创建一个数组. Ruby的数组可以适应不同的对象类型 ruby> ary = [1, 2, “3”] [1, 2, “3”] 就像前面提到的字符串一样.数组也可以相乘或相加 ruby> ary...

    针对您的Active Model的自定义验证,用于检查另一个数组中是否包含一个数组-Ruby开发

    Active Model验证交叉点Active Model的自定义验证,用于检查另一个数组中是否包含一个数组。 与ActiveModel中的validates_inclusion_of方法相同,但用于数组比较。 缺点Active Model验证交叉点Active Model的自定义...

Global site tag (gtag.js) - Google Analytics