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
- 浏览 4754
- 评论(0)
- 论坛回复 / 浏览 (0 / 2497)
- 查看更多
相关推荐
Ruby数组是有序的,任何对象的??整数索引的集合。每个数组中的元素相关联,并提到的一个索引。 数组下标从0开始,如C或Java。负数索引假设数组末尾—也就是说,-1表示最后一个元素的数组索引,-2是数组中最后一个...
此外,索引操作符还可以与赋值操作符结合,用于改变数组中特定位置的值,如`names[1] = "Billy"`将"Jim"替换为"Billy"。 在处理数组时,`each`方法是一种常用的迭代器,可以遍历数组中的每个元素。例如,`days.each...
数组中的每个元素都有一个与之关联的索引,索引从 0 开始。此外,Ruby 支持负数索引,即索引 -1 表示数组的最后一个元素,-2 表示倒数第二个元素,以此类推。 #### 四、数组的操作与管理 - **创建数组**: - 使用 ...
重装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数组中,元素可以通过索引来访问和操作,索引通常从0开始。 ### 数组创建 Ruby提供多种创建数组的方法。最常见的是通过方括号`[]`来创建,例如: ```ruby arr = [1, 2, 3, "four", true] # 创建包含不同类型...
请说明在Ruby中数组和哈希的不同特点。 **数组**是有序的元素集合,可以通过索引访问;**哈希**是键值对的无序集合,通过键来访问对应的值。 **示例**: ```ruby # 数组 arr = [1, 2, 3] puts arr[0] # 输出 1 # ...
Ruby中的数组是动态数组,存储的数据不用限定类型,数组的长度是根据存储需要动态扩展,所以,在进行数据定义的时候,只用用最简单的方式new一个Array对象就可以了,可以使用以下几种方式: 代码如下: arr1=[] #最...
Ruby的数组(arrays)和散列表(hashes)是被索引的收集(indexed collections). ...有了数组对象,在方括号之间提供索引便可以访问单个元素,如下例所示,注意Ruby数组的索引从零开始。 a=[1,'cat',3.14] #有三个元
数组中的每个元素都有一个唯一的索引,根据这个索引,你可以轻松地访问、修改或删除这些元素。下面我们将深入探讨Ruby数组的各种操作。 1. **创建数组**:Ruby数组的创建非常直观,只需在方括号`[]`内列出元素,...
在Ruby中,异常类是继承自`StandardError`的,你可以自定义异常类来处理特定类型的错误。 Ruby on Rails是Ruby最著名的Web开发框架,它遵循MVC(模型-视图-控制器)架构模式。这份文档可能也涵盖了Rails的相关内容...
在学习Ruby的过程中,你还需要了解一些工具,如Ruby的解释器irb(交互式Ruby环境)和ri/rdoc(Ruby文档工具),它们有助于调试和理解代码。版本管理工具如RVM(Ruby Version Manager)和rbenv可以帮助你管理多个Ruby...
在这个场景下,我们可能有一个模型,它的某个属性是一个数组,我们需要确保这个数组的所有元素都存在于另一个预定义的数组中。这种验证可以防止意外的数据输入,确保数据的完整性。 首先,我们来了解一下如何创建...
1. **基础语法**:Ruby的基本数据类型,如整型、浮点型、字符串、数组、哈希等,以及变量的使用,如局部变量、实例变量和全局变量。 2. **控制结构**:包括条件语句(如if/else,case)和循环(如for,while,until...
此外,书中还会涵盖Ruby的数组、哈希、字符串和正则表达式等数据结构,以及文件和目录操作。Ruby的标准库提供了丰富的功能,如网络通信、XML解析、数据库连接等,书中也会有相应介绍。 最后,对于新手来说,了解...