So erstellen ein mehrdimensionales Array in Ruby

October 5

Obwohl Ruby explizite Unterstützung für mehrdimensionale Arrays nicht bietet, können Sie selbst implementieren, wenn Sie Grundkenntnisse der Sprache haben. Im Wesentlichen müssen Sie erstellen ein "Array von Arrays", in dem jedes Element des Arrays noch ein Array enthält. Um solch ein mehrdimensionales Array in Ruby zu erstellen, schreiben Sie eine Methode, um die Arrays von Arrays zu erzeugen, so dass der Code nicht wiederholt werden.

Anweisungen

Erstellt ein mehrdimensionales Array in Ruby

1 Das Skelett der Methode zu schreiben. Diese Methode nimmt eine Anzahl von Argumenten Dimension und liefert ein leeres mehrdimensionales Array diese Dimensionen. Beispielsweise ein 10 x 10-Array aufrufen dieser Methode-mda(10,10): def mda(width,height) end

2 Erstellen Sie ein Array mit Elementen der Breite.

3 Erstellen Sie ein Array mit Elementen der Höhe für jedes Element im Array. Dies macht das "Array von Arrays", das als zweidimensionales Array verwendet werden. Um leere Arrays von einer bestimmten Länge zu erstellen, verwenden Sie den Array.new-Konstruktor mit der Länge, als Argument. Zunächst werden alle Werte im Array NULL sein.

4 Benutzen Sie die Karte! Methode als gut. Die Karte! Methode durchläuft jedes Element in einem Array, ein Block für jeden ausgeführt und weist das Ergebnis des Blocks Array-Elements. Das gleiche Ergebnis erreicht werden kann, mit einer Schleife, aber die Karte! Methode ist prägnanter: def mda(width,height) a = Array.new(width) a.map! { Array.new(height) } return a end

5 Verwenden Sie dieses Array mit dem Index (eckige Klammern [])-Operator. Beispielsweise, wenn Sie hatte eine 10 x 10 Array mit dem Namen "a" und wollte das 7,3 Element, man würde sagen ein [7] [3]: a = mda(10,10)# Fill the array with values a[7][5] = "a string" a[2][9] = 23# Retrieve values puts a[7][5] puts a[2][9]

6 Nutzen Sie die Möglichkeit, "Kette"-Methodenaufrufe in Ruby. Zum Beispiel gibt die Array.new-Methode ein Array. Sie können einem anderen Methodenaufruf auf, die zum Aufrufen einer Methode des zurückgegebenen Arrays verketten. Denn Sie die Methoden Verkettung sind und nicht mit einer return-Anweisung, die Sie nicht brauchen die Variable entweder benennen: def mda(width,height) Array.new(width).map!{ Array.new(height) } end

Tipps & Warnungen

  • Ruby ist sehr ausdrucksstark. Die MDA-Methode kann ein kurz und prägnant einzelne Codezeile sein. Zusätzliche Zeilen und Keywords machen nur Code aussehen komplizierter als es wirklich ist.
  • Die return-Anweisung ist nicht erforderlich in Ruby. Rubin-Methoden und Blöcke zurückgegeben automatisch das Ergebnis der letzten Anweisung ausgeführt wird in der Methode oder Block.