你通過(guò)在方括號(hào)里列出元素并用逗號(hào)將它們相互隔開(kāi)來(lái)創(chuàng)建一個(gè)數(shù)組. Ruby的數(shù)組可以適應(yīng)不同的對(duì)象類型
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"]
我們可用索引來(lái)訪問(wèn)數(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"]
(負(fù)數(shù)索引表示到數(shù)組末尾的偏移,而不是從開(kāi)頭算起.)
數(shù)組可以和字符串互相轉(zhuǎn)化,分別使用join和split:
ruby> str = ary.join(":")
"1:2:3"
ruby> str.split(":")
["1", "2", "3"]
哈希表
一個(gè)關(guān)聯(lián)數(shù)組不通過(guò)連續(xù)的數(shù)字索引來(lái)訪問(wèn),而是通過(guò)任何類型的主鍵(key)訪問(wèn).這樣的數(shù)組有時(shí)被叫作哈希(hash)或者字典(dictionary).在Ruby里,我們趨向于用哈希這個(gè)術(shù)語(yǔ).將一對(duì)對(duì)的元素用逗號(hào)分隔開(kāi),并用大括號(hào)({})括起來(lái),這樣就組成了一個(gè)哈希表.你用一個(gè)關(guān)鍵字在哈希表里進(jìn)行搜索,就像你在數(shù)組里用索引來(lái)提取數(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"}