Ruby - 数组



Ruby 数组是有序的,整数索引的任何对象的集合。数组中的每个元素都与一个索引相关联,并由该索引引用。

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

Ruby 数组可以保存诸如字符串、整数、Fixnum、哈希表、符号,甚至其他数组对象等对象。Ruby 数组不像其他语言中的数组那样严格。在向 Ruby 数组添加元素时,它们会自动增长。

创建数组

有许多方法可以创建或初始化数组。一种方法是使用 new 类方法 -

names = Array.new

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

names = Array.new(20)

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

#!/usr/bin/ruby

names = Array.new(20)
puts names.size  # This returns 20
puts names.length # This also returns 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]

Array 还有另一种方法,[]。它的工作原理如下 -

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

数组创建的另一种形式如下 -

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

核心 Ruby 中提供的 Kernel 模块有一个 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 打包指令

示例

尝试以下示例以打包各种数据。

a = [ "a", "b", "c" ]
n = [ 65, 66, 67 ]
puts a.pack("A3A3A3")   #=> "a  b  c  "
puts a.pack("a3a3a3")   #=> "a\000\000b\000\000c\000\000"
puts n.pack("ccc")      #=> "ABC"

这将产生以下结果 -

a  b  c
abc
ABC
广告

© . All rights reserved.