Ruby的数组
你可以在方括号([])内列出条目并用逗号分隔。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"]
散列表(Hashes)
一个联合数组拥有的元素不能通过顺序的索引访问,但是可以通过键值,其可以是任何类型的值。这样的一个数组称作散列表或者字典;在Ruby里,我们使用术语“散列表(Hash)”。一个散列表可以通过在大括号({})中使用键=>值对来定义。在散列表中你使用健来查找值,就像你在数组中使用索引一样。
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 an entry
10
ruby> h
{5=>10, 1=>2, "2"=>"4"}
ruby> h.delete 1 # deleting an entry by key
2
ruby> h[1]
nil
ruby> h
{5=>10, "2"=>"4"}
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"]
散列表(Hashes)
一个联合数组拥有的元素不能通过顺序的索引访问,但是可以通过键值,其可以是任何类型的值。这样的一个数组称作散列表或者字典;在Ruby里,我们使用术语“散列表(Hash)”。一个散列表可以通过在大括号({})中使用键=>值对来定义。在散列表中你使用健来查找值,就像你在数组中使用索引一样。
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 an entry
10
ruby> h
{5=>10, 1=>2, "2"=>"4"}
ruby> h.delete 1 # deleting an entry by key
2
ruby> h[1]
nil
ruby> h
{5=>10, "2"=>"4"}
