Ruby kann auch mit Arrays umgehen. Wir können ein Array erzeugen indem wir die Werte mit `[]' umschließen. Ruby's Arrays können beliebige Typen von Objekten enthalten.
ruby> ary = [1, 2, "3"] [1, 2, "3"]
Arrays können verknüpft und wiederholt werden, in der selben Weise wie Strings.
ruby> ary + ["foo", "bar"] [1, 2, "3", "foo", "bar"] ruby> ary * 2 [1, 2, "3", 1, 2, "3"]
Wir können ein Bereich eines Arrays bekommen.
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"]
Arrays und Strings sind konvertierbar. Ein Array kann man mit `join' in einen String umwandeln, und einen String wird zu einem Array aufgeteilt mit `split'.
ruby> str = ary.join(":")
"1:2:3"
ruby> str.split(":")
["1", "2", "3"]
Assoziative Arrays sind eine andere wichtige Datenstruktur. Ein assoziatives Array ist ein Array mit Schlüsseln, die einen beliebigen Wert bekommen können. Assoziative Arrays werden auch Hash oder Dictionary (Wörterbuch) genannt. In der Ruby-Welt benutzen wir als Konvention Hash. Ein Hash wird durch ein `{ }' erzeugt.
ruby> hash = {1 => 2, "2" => "4"}
{1=>2, "2"=>"4"}
ruby> hash[1]
2
ruby> hash["2"]
"4"
ruby> hash[5]
nil
ruby> hash[5] = 10 # Wert anhängen
ruby> hash
{5=>10, 1=>2, "2"=>"4"}
ruby> hash[1] = nil # Wert löschen
nil
ruby> hash[1]
nil
ruby> hash
{5=>10, "2"=>"4"}
Danke an die Arrays und Hashs, mit denen wir Datenbehälter einfach erzeugen können.