Ruby的数组和hash的关系与区别
Ruby的数组和hash都是带索引的集合。它们都可以容纳一组对象,并允许以索引键来访问这些对象。对数组而言,索引键是一个整数;而hash则允许用任何对象作为索引键。数组和hash都能够自动增长以容纳新的元素。数组和hash都可以容纳不同类型的对象。
数组的定义
方括号里列出元素并用逗号将它们相互隔开来创建一个数组
arr=[1,3,3,"hello"];
对于Ruby的数组而言,每个数组元素都处于数组的一个位置上,用一个整数(既可以是正整数有可以是负整数)来索引。
当我们从左向右访问数组元素时,最左边数组元素的索引从0开始,然后依次是1,2,3,。。。
当我们从右向左访问数组元素时,最左边数组元素的索引从-1开始,然后依次是-2,-3,。。。
在Ruby中数组中的元素可以是nil(null)。nil在Ruby中是一个对象与其它对象一样,不过它恰好代表“什么都没有”。
Ruby的数组时Array类的实例
#定一个空数组
my_array = Array.new
puts "数组的长度:"+my_array.size.to_s
my_array[3]="Hello";
puts "数组的长度:"+my_array.size.to_s
my_array[5]="4...7";
p my_array
puts "数组的长度:"+my_array.size.to_s
输出结果
数组的长度:0
数组的长度:4
[nil, nil, nil, "Hello", nil, "4...7"]
数组的长度:6
数组的%表示方法
ruby语言可以吧一个包含多个空格的字符串转换成数组,ruby会把空格当成数组分隔符,每个空格分隔的子串都会被当作一个数组元素
使用%w{...}或者%W{...}表示
%w{}与%W{}的功能大致相同,但%W会进行更多额外的替换
a=%w{ant bee cat}
结果
a=['ant','bee','cat']
数组的常用方法
array[n,m] 截取数组array的子数组,从索引n开始截取,截取长度为m个元素组成新数组
array[n..m] 截取数组array的子数组,从索引n开始截取,截到索引为m的元素,包括索引为m的元素
array[n...m] 截取数组array的子数组,从索引n开始截取,截到索引为m的元素,不包括索引为m的元素
就像前面提到的字符串一样.数组也可以相乘或相加
ary=[1,2,"3"]
p ary.size
s=ary+[1,3];
t=s * 2
p s
p t
输出结果
3
[1, 2, "3", 1, 3]
[1, 2, "3", 1, 3, 1, 2, "3", 1, 3]
数组可以和字符串互相转化,分别使用join和split:
ary=[1,2,"3"]
p str = ary.join(":")
p str.split(":")
输出结果
"1:2:3"
["1", "2", "3"]
数组的一个常用的方法是<<,该方法会把一个值附加到数组的尾端。
arrs= []
6.times do |value|
arrs<<value
end
p arrs
end
输出结果
[0, 1, 2, 3, 4, 5]
分享到:
- 2009-06-06 11:01
- 浏览 4732
- 评论(0)
- 论坛回复 / 浏览 (0 / 2479)
- 查看更多
相关推荐
Ruby数组是有序的,任何对象的??整数索引的集合。每个数组中的元素相关联,并提到的一个索引。 数组下标从0开始,如C或Java。负数索引假设数组末尾—也就是说,-1表示最后一个元素的数组索引,-2是数组中最后一个...
8. Ruby中的数组(Array)和哈希(Hash)有什么区别?请说明在Ruby中数组和哈希的不同特点。 9. 什么是Ruby中的块(Block)和迭代器(Iterator)?请简要介绍在Ruby中块和迭代器的概念。 10. 在Ruby中如何进行模块...
在本篇文章里小编给大家分享了关于Ruby创建数组方法的知识点内容,对戏有兴趣的朋友们学习下。
重装Ruby Ruby中用于数组,哈希,可枚举,字符串,对象和日期的有用方法和猴子补丁的集合。 通过使生活更轻松和编码更自然而受到驱动。 该库与其他库之间的区别在于,所有猴子修补均以选择加入的方式执行,因为您不...
数组是存储数据的一种容器,在Ruby中,数组中存储的数据可以是任何类型的数据;这和JAVA不同,在JAVA中,数组是存储同一类型数据的结构。 1. 在Ruby中如何定义数组呢? 使用[ ]来框住元素,而元素之间则使用”,”...
ruby数组处理大全 如函数名称 说明 示例 &数组与,返回两数组的交集 [1,2] & [2,3] =>[2] *复制数组n次 [1,2]*2 => [1,2,1,2] +返回两数组的并集,但不排除重复元素 [1,2]+[2,3] =>[1,2,2,3] 追加元素,但不...
ruby数组
Ruby中的数组是动态数组,存储的数据不用限定类型,数组的长度是根据存储需要动态扩展,所以,在进行数据定义的时候,只用用最简单的方式new一个Array对象就可以了,可以使用以下几种方式: 代码如下: arr1=[] #最...
Ruby是一种动态、面向对象的编程语言,它具有简洁、易读的语法,被称为“程序员最好的朋友”。Ruby具有强大的元编程能力,允许开发者在运行时动态修改和生成代码。Ruby还有一个强大的标准库,提供了丰富的工具和功能...
Ruby的数组(arrays)和散列表(hashes)是被索引的收集(indexed collections). ...有了数组对象,在方括号之间提供索引便可以访问单个元素,如下例所示,注意Ruby数组的索引从零开始。 a=[1,'cat',3.14] #有三个元
数组也可以相乘或相加 ruby> ary + [“foo”, “bar”] [1, 2, “3”, “foo”, “bar”] ruby> ary * 2 [1, 2, “3”, 1, 2, “3”] 我们可用索引来访问数组的任意一部分. ruby> ary[0] 1 ruby>...
二进制搜索是Ruby的Array类中缺少的一种非常方便的算法。 如果我们知道绝对肯定的是,我们正在与正在工作的数组排序,你可以使用二进制搜索通过数组得多的速度远远超过线性搜索,这与指数进行或检测/查找搜索。 用法...
Active Model的自定义验证,用于检查数组是否包含在另一个中
代码挑战2D Sum(Ruby) 2D翻译(Ruby) 缩写句(Ruby) 加性持久性(Ruby) 相邻和(Ruby) AE计数(Ruby) 所有其他均等(Ruby) 七巧板(Python,Ruby) Fixnum数组? (Ruby) 数组翻译(Ruby) BST迭代器...
在Ruby中,数组和哈希可以被称为集合. 迭代器返回一个集合的所有元素,一前一后。我们将讨论两个迭代器,在这里,每个收集。让我们来看看这些细节. Ruby each 迭代: 每个迭代器返回一个数组的所有元素或哈希. 语法: ...
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
rubyonrails+Ruby+取得指定月日期数的思路方法