Gibt es eine Ruby-Version von for-loop, die der in Java / C (++) ähnelt?
In Java:
%Vor%Der Grund ist, weil ich verschiedene Operationen basierend auf dem Index der Iteration durchführen muss. Sieht so aus, als hätte Ruby nur eine for-each-Schleife?
Habe ich Recht?
Ruby neigt dazu, Iteratoren anstelle von Schleifen zu verwenden; Sie können die ganze Funktion von Schleifen mit den leistungsstarken Iteratoren von Ruby erhalten.
Es gibt mehrere Möglichkeiten, dies zu tun, nehmen wir an, Sie haben ein Array 'arr' der Größe 1000.
%Vor%Alle diese Beispiele bieten die gleiche Funktionalität
In Ruby kann die for
-Schleife wie folgt implementiert werden:
Wenn Sie sowohl das Element als auch den Index haben wollen, ist die Syntax each_with_index
wahrscheinlich am besten:
Die each_with_index
-Schleife ist jedoch langsamer, da sie sowohl die Objekte element
als auch index
für jede Iteration der Schleife bereitstellt.
Die while-Schleife führt ihren Körper null oder mehrmals aus, solange ihre Bedingung wahr ist.
%Vor%Die while-Schleife kann die for-Schleife von Java ersetzen. In Java
%Vor%ist wie folgt (außer in der zweiten Form sind initialisierte Variablen nicht lokal für for-loop).
%Vor%Die Ruby-while-Schleife kann in dieser Form geschrieben werden, um als for-loop von Java zu arbeiten. In Ruby,
%Vor%Beachten Sie, dass die Schleife 'while' (und 'bis' und 'für') keinen neuen Bereich einführt; Bereits vorhandene Locals können in der Schleife verwendet werden und neue Locals werden später verfügbar sein.