Prev | Contents | Next

| Ruby user's guide | Arrays |

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"}

Prev | Contents | Next