Ruby 数组(Array)

Ruby 数组是任何对象的有序整数索引集合。数组中的每个元素都与一个索引相关,并可通过索引进行获取。

数组的索引从 0 开始,这与 C 或 Java 中一样。一个负数的索相对于数组的末尾计数的,也就是说,索引为 -1 表示数组的最后一个元素,-2 表示数组中的倒数第二个元素,依此类推。

Ruby 数组可存储诸如 String、Hash、 Fixnum、 Integer、 Symbol 等对象,甚至可以是其他 Array 对象。

Ruby 数组不需要指定大小,当向数组添加元素时,Ruby 数组会自动增长。

创建数组

有多种方式创建或初始化数组。一种方式是通过 new 类方法:

names = Array.new

您可以在创建数组的同时设置数组的大小:

names = Array.new(20)

数组 names 的大小或长度为 20 个元素。您可以使用 size 或 length 方法返回数组的大小:

实例

#!/usr/bin/ruby
 
names = Array.new(20)
puts names.size  # 返回 20
puts names.length # 返回 20

以上实例运行输出结果为:

20
20

您可以给数组中的每个元素赋值,如下所示:

实例

#!/usr/bin/ruby
 
names = Array.new(4, "mac")
 
puts "#{names}"

以上实例运行输出结果为:

["mac", "mac", "mac", "mac"]

您也可以使用带有 new 的块,每个元素使用块中的计算结果来填充:

实例

#!/usr/bin/ruby
 
nums = Array.new(10) { |e| e = e * 2 }
 
puts "#{nums}"

以上实例运行输出结果为:

[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

数组还有另一种方法,[],如下所示:

nums = Array.[](1, 2, 3, 4,5)

数组创建的另一种形式如下所示:

nums = Array[1, 2, 3, 4,5]

在 Ruby 核心模块中可以有一个只接收单个参数的 Array 方法,该方法使用一个范围作为参数来创建一个数字数组:

实例

#!/usr/bin/ruby
 
digits = Array(0..9)
 
puts "#{digits}"

以上实例运行输出结果为:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

数组内建方法

我们需要有一个 Array 对象的实例来调用 Array 方法。下面是创建 Array 对象实例的方式:

Array.[](...) [or] Array[...] [or] [...]

这将返回一个使用给定对象进行填充的新数组。现在,使用创建的对象,我们可以调用任意可用的方法。例如:

实例

#!/usr/bin/ruby
 
digits = Array(0..9)
 
num = digits.at(6)
 
puts "#{num}"

以上实例运行输出结果为:

6

下面是公共的数组方法(假设 array 是一个 Array 对象):

序号 方法 & 描述
1 array & other_array
返回一个新的数组,包含两个数组中共同的元素,没有重复。
2 array * int [or] array * str
返回一个新的数组,新数组通过连接 self 的 int 副本创建的。带有 String 参数时,相当于 self.join(str)。
3 array + other_array
返回一个新的数组,新数组通过连接两个数组产生第三个数组创建的。
4 array - other_array
返回一个新的数组,新数组是从初始数组中移除了在 other_array 中出现的项的副本。
5 str <=> other_str
把 str 与 other_str 进行比较,返回 -1(小于)、0(等于)或 1(大于)。比较是区分大小写的。
6 array | other_array
通过把 othe
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值