你通過在方括弧裡列出元素並用逗號將它們相互隔開來建立一個數組. Ruby的數組可以適應不同的物件類型
ruby> ary = [1, 2, "3"]
[1, 2, "3"]
就像前面提到的字串一樣.數組也可以相乘或相加
ruby> ary + ["foo", "bar"]
[1, 2, "3", "foo", "bar"]
ruby> ary * 2
[1, 2, "3", 1, 2, "3"]
我們可用索引來訪問數組的任意一部分.
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"]
(負數索引表示到數組末尾的位移,而不是從開頭算起.)
數組可以和字串互相轉化,分別使用join和split:
ruby> str = ary.join(":")
"1:2:3"
ruby> str.split(":")
["1", "2", "3"]
雜湊表
一個關聯陣列不通過連續的數字索引來訪問,而是通過任何類型的主鍵(key)訪問.這樣的數組有時被叫作雜湊(hash)或者字典(dictionary).在Ruby裡,我們趨向於用雜湊這個術語.將一對對的元素用逗號分隔開,並用大括弧({})括起來,這樣就組成了一個雜湊表.你用一個關鍵字在雜湊表裡進行搜尋,就像你在數組裡用索引來提取資料一樣.
複製代碼 代碼如下: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"}