你通過在方括號里列出元素并用逗號將它們相互隔開來創(chuàng)建一個數(shù)組. Ruby的數(shù)組可以適應(yīng)不同的對象類型
ruby> ary = [1, 2, "3"]
[1, 2, "3"]
就像前面提到的字符串一樣.數(shù)組也可以相乘或相加
ruby> ary + ["foo", "bar"]
[1, 2, "3", "foo", "bar"]
ruby> ary * 2
[1, 2, "3", 1, 2, "3"]
我們可用索引來訪問數(shù)組的任意一部分.
ruby> ary[0]
1
ruby> ary[0,2]
[1, 2]
ruby> ary[0..1]
[1, 2]
ruby> ary[-2]
2
ruby> ary[-2,2]
[2, "3"]
ruby> ary[-2..-1]
[2, "3"]
(負數(shù)索引表示到數(shù)組末尾的偏移,而不是從開頭算起.)
數(shù)組可以和字符串互相轉(zhuǎn)化,分別使用join和split:
ruby> str = ary.join(":")
"1:2:3"
ruby> str.split(":")
["1", "2", "3"]
哈希表
一個關(guān)聯(lián)數(shù)組不通過連續(xù)的數(shù)字索引來訪問,而是通過任何類型的主鍵(key)訪問.這樣的數(shù)組有時被叫作哈希(hash)或者字典(dictionary).在Ruby里,我們趨向于用哈希這個術(shù)語.將一對對的元素用逗號分隔開,并用大括號({})括起來,這樣就組成了一個哈希表.你用一個關(guān)鍵字在哈希表里進行搜索,就像你在數(shù)組里用索引來提取數(shù)據(jù)一樣.
代碼如下:
ruby> h = {1 => 2, "2" => "4"}
{1=>2, "2"=>"4"}
ruby> h[1]
2
ruby> h["2"]
"4"
ruby> h[5]
nil
ruby> h[5] = 10 # appending value
10
ruby> h
{5=>10, 1=>2, "2"=>"4"}
ruby> h.delete 1 # deleting value
2
ruby> h[1]
nil
ruby> h
{5=>10, "2"=>"4"}