Previous
Prev
Contents
Contents
Next
Next
 Ruby user's guide Arrays and associative 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"]

Associative arrays are another important data structure.  An associative array is an array whose values need not be referenced by a numeric subscript, but by keys which can have any sort of value.  An assosiative 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[1] = nil    # deleting value
    nil
 ruby> h[1]
    nil
 ruby> h
    {5=>10, "2"=>"4"}

Previous
Prev
Contents
Contents
Next
Next