You can create an array by listing some items within
square brackets ([]
) and separating them with
commas. Ruby's arrays can accomodate diverse object types.
[1, 2, "3"]
Arrays can be concatenated or repeated just as strings can.
[1, 2, "3", "foo", "bar"]
ruby> ary * 2
[1, 2, "3", 1, 2, "3"]
We can use index numbers to refer to any part of a array.
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"]
(Negative indices mean offsets from the end of an array, rather than the beginning.)
Arrays can be converted to and from strings, using join
and split
respecitvely:
"1:2:3"
ruby> str.split(":")
["1", "2", "3"]
Hashes
An associative array has elements that are accessed not by
sequential index numbers, but by keys which can have any sort
of value. Such an array is sometimes called a hash or
dictionary; in the ruby world, we prefer the term
hash. A hash can be constructed by quoting pairs of items
within curly braces ({}
). You use a key to find
something in a hash, much as you use an index to find something in an
array.
{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"}