程序經常需要管理變量集合。例如,管理日歷的程序必須有一周的天數列表。每天必須存儲在一個變量中,它們的列表可以存儲在一個數組變量中。通過這個數組變量,您可以訪問每一天。
創建空數組
您可以通過創建一個新的數組對象并將其存儲在一個變量中來創建一個空數組。這個數組將為空;您必須用其他變量填充它才能使用它。如果要從鍵盤或文件中讀取內容列表,這是創建變量的一種常見方法。
在下面的示例程序中,使用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" |