Prev - DUP - Next - TOC

Arrays und assoziative Arrays


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.


Prev - DUP - Next - TOC