Arrays sind nicht die einzige Möglichkeit, Variablensammlungen in Ruby zu verwalten. Eine andere Art der Sammlung von Variablen ist die hash, wird auch als assoziatives Array bezeichnet. Ein Hash ist insofern wie ein Array, als es eine Variable ist, die andere Variablen speichert. Ein Hash ist jedoch insofern anders als ein Array, als die gespeicherten Variablen nicht in einer bestimmten Reihenfolge gespeichert werden und sie nicht anhand ihrer Position in der Auflistung, sondern mit einem Schlüssel abgerufen werden.
Ein Hash ist nützlich, um das zu speichern, was aufgerufen wird Schlüssel / Wert-Paare. Ein Schlüssel / Wert-Paar verfügt über einen Bezeichner, der angibt, auf welche Variable des Hashs Sie zugreifen möchten und eine Variable, die an dieser Position im Hash gespeichert werden soll. Beispielsweise kann ein Lehrer die Noten eines Schülers in einem Hash speichern. Auf die Note von Bob würde in einem Hash mit dem Schlüssel "Bob" zugegriffen, und die an diesem Ort gespeicherte Variable wäre die Note von Bob.
Eine Hash-Variable kann auf dieselbe Weise wie eine Array-Variable erstellt werden. Die einfachste Methode besteht darin, ein leeres Hash-Objekt zu erstellen und es mit Schlüssel / Wert-Paaren zu füllen. Beachten Sie, dass der Indexoperator verwendet wird, der Name des Schülers jedoch anstelle einer Zahl verwendet wird.
Denken Sie daran, dass Hashes ungeordnet sind, dh es gibt keinen definierten Anfang oder Ende wie in einem Array. Sie können also keinen Hash anhängen. Werte werden einfach mit dem Indexoperator in den Hash eingefügt.
#! / usr / bin / env ruby
Noten = Hash.new
Noten ["Bob"] = 82
Noten ["Jim"] = 94
Noten ["Billy"] = 58
setzt Noten ["Jim"]
Genau wie Arrays können Hashes mit Hash-Literalen erstellt werden. Hash-Literale verwenden die geschweiften Klammern anstelle der eckigen Klammern, und die Schlüsselwertpaare werden durch verbunden =>. Ein Hash mit einem einzelnen Schlüssel / Wert-Paar von Bob / 84 würde beispielsweise so aussehen: "Bob" => 84. Zusätzliche Schlüssel / Wert-Paare können zum Hash-Literal hinzugefügt werden, indem sie durch Kommas getrennt werden. Im folgenden Beispiel wird für eine Reihe von Schülern ein Hash mit den Noten erstellt.
#! / usr / bin / env ruby
Noten = "Bob" => 82,
"Jim" => 94,
"Billy" => 58
setzt Noten ["Jim"]
Es kann vorkommen, dass Sie auf jede Variable im Hash zugreifen müssen. Sie können weiterhin die Variablen im Hash mit dem Befehl jeder Schleife, obwohl es nicht so funktioniert wie mit der jeder Schleife mit Array-Variablen. Weil ein Hash ungeordnet ist, in welcher Reihenfolge jeder Durchlaufen die Schlüssel / Wert-Paare möglicherweise nicht in der Reihenfolge, in der Sie sie eingefügt haben. In diesem Beispiel wird ein Notenhash durchlaufen und gedruckt.
#! / usr / bin / env ruby
Noten = "Bob" => 82,
"Jim" => 94,
"Billy" => 58
grades.each do | name, grade |
setzt "# name: # grade"
Ende