- 1. Hashes
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.
- ruby> ary = [1, 2, "3"]
- [1, 2, "3"]
Arrays can be concatenated or repeated just as strings can.
- ruby> ary + ["foo", "bar"]
- [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.
- 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"]
(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:
- ruby> str = ary.join(":")
- "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.
- 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"}