程序经常需要管理变量集合。例如,管理日历的程序必须有一周的天数列表。每天必须存储在一个变量中,它们的列表可以存储在一个数组变量中。通过这个数组变量,您可以访问每一天。
创建空数组
您可以通过创建一个新的数组对象并将其存储在一个变量中来创建一个空数组。这个数组将为空;您必须用其他变量填充它才能使用它。如果要从键盘或文件中读取内容列表,这是创建变量的一种常见方法。
在下面的示例程序中,使用array命令和赋值运算符创建一个空数组。从键盘上读取三个字符串(字符的有序序列)并“pushed”或添加到数组的末尾。
1
2
3
4
5
6
|
#!/usr/bin/env ruby array = Array. new 3.times do str = gets.chomp array.push str end |
使用数组文字来存储已知信息
数组的另一个用途是存储编写程序时已经知道的内容的列表,例如星期几。要将星期几存储在数组中,可以创建一个空数组,并像前面的示例那样将它们一个接一个地追加到数组中,但是有一种更简单的方法。可以使用数组文字。
在编程中,“literal”是一种内置在语言本身中的变量类型,它有特殊的语法来创建它。例如,3是一个数字文字,而“Ruby”是一个字符串文字。数组文字是用方括号括起来并以逗号分隔的变量列表,如[1,2,3]。注意,任何类型的变量都可以存储在数组中,包括同一数组中不同类型的变量。
下面的示例程序创建一个包含星期几的数组并将其打印出来。使用数组文字,并使用每个循环来打印它们。注意,每一个都不是Ruby语言内置的,而是数组变量的函数。
1
2
3
4
5
6
7
8
9
10
11
12
|
#!/usr/bin/env ruby days = [ "Monday" , "Tuesday" , "Wednesday" , "Thursday" , "Friday" , "Saturday" , "Sunday" ] days. each do |d| puts d end |
使用索引操作符访问各个变量
除了对数组进行简单的循环(按顺序检查每个单独的变量)之外,还可以使用index操作符从数组中访问单独的变量。index操作符将获取一个数字并从数组中检索一个变量,该变量在数组中的位置与该数字匹配。索引号从0开始,因此数组中的第一个变量的索引为0。
例如,要从数组中检索第一个变量,可以使用数组[0],要检索第二个变量,可以使用数组[1]。在下面的示例中,名称列表存储在数组中,并使用index操作符检索和打印。索引操作符还可以与赋值操作符组合使用,以更改数组中变量的值。
1
2
3
4
5
6
7
|
#!/usr/bin/env ruby names = [ "Bob" , "Jim" , "Joe" , "Susan" ] puts names[ 0 ] # Bob puts names[ 2 ] # Joe # Change Jim to Billy names[ 1 ] = "Billy" |