Ich habe speziell nach der Indizierung in einer Schleife gesucht. Keine dieser Lösungen macht sofort klar, wie das geht. Der Op verriet seine Absichten mit Array.Länge im Code ...
Jheriko
6
Lesen Sie meine Antwort sorgfältig durch. Es gibt eine Schleifenlösung mit Indizierung.
Eimantas
8
Oft eachist das toll. Aber manchmal möchte ich nur eine gottverdammte traditionelle Schleife. Manchmal kann der "Ruby Way" einfach nur nervig sein.
Ruben Martinez Jr.
1
Wie setze ich den Index manuell in Ruby, damit ich selbst eine Sortierung schreiben kann
Muhammad Umer
6
Was ist, wenn ich die nächsten zwei Iterationen überspringen möchte
Muhammad Umer
77
limit = array.length;for counter in0..limit
--- make some actions ---end
Der andere Weg, dies zu tun, ist der folgende
3.timesdo|n|
puts n;end
das wird 0, 1, 2 drucken, könnte also auch wie ein Array-Iterator verwendet werden
Denken Sie, dass diese Variante besser zu den Bedürfnissen des Autors passt
Ich treffe dies immer wieder als Top-Link für Google "Ruby for Loop", daher wollte ich eine Lösung für Loops hinzufügen, bei denen der Schritt nicht einfach "1" war. In diesen Fällen können Sie die Schrittmethode verwenden, die für Numerik- und Datumsobjekte vorhanden ist. Ich denke, dies ist eine enge Annäherung für eine 'for'-Schleife.
start =Date.new(2013,06,30)
stop =Date.new(2011,06,30)# step back in time over two years, one week at a time
start.step(stop,-7).each do|d|
puts d
end
Ein Vorteil von .each ... do besteht darin, dass der temporäre Block am Ende der Schleife aus dem Gültigkeitsbereich fällt, während für ... in der temporäre Bereich im Gültigkeitsbereich verbleibt .
Dies lautet "Aufruf der Methode 'each' der Array-Objektinstanz 'collection', die einen Block mit dem Argument 'blockargument' verwendet". Die Blocksyntax in Ruby lautet 'do ... end' oder '{...}' für einzeilige Anweisungen.
Das Blockargument '| item |' ist optional, aber falls angegeben, repräsentiert das erste Argument automatisch das in einer Schleife aufgezählte Element.
Antworten:
oder
Wenn Sie einen Index benötigen, können Sie diesen verwenden:
quelle
each
ist das toll. Aber manchmal möchte ich nur eine gottverdammte traditionelle Schleife. Manchmal kann der "Ruby Way" einfach nur nervig sein.Der andere Weg, dies zu tun, ist der folgende
das wird 0, 1, 2 drucken, könnte also auch wie ein Array-Iterator verwendet werden
Denken Sie, dass diese Variante besser zu den Bedürfnissen des Autors passt
quelle
Ich treffe dies immer wieder als Top-Link für Google "Ruby for Loop", daher wollte ich eine Lösung für Loops hinzufügen, bei denen der Schritt nicht einfach "1" war. In diesen Fällen können Sie die Schrittmethode verwenden, die für Numerik- und Datumsobjekte vorhanden ist. Ich denke, dies ist eine enge Annäherung für eine 'for'-Schleife.
quelle
Die Äquivalenz wäre
oder
oder
quelle
Es ist nicht sehr Rubyish, aber es ist der beste Weg, um die for-Schleife aus der Frage in Ruby zu machen
quelle
each
sondern isteach_index
. +1Versuchen Sie Folgendes, um eine Schleife eine feste Anzahl von Malen zu wiederholen:
quelle
Wenn Sie nicht auf Ihr Array zugreifen müssen (nur eine einfache for-Schleife), können Sie bis zu oder jedes verwenden:
Bis zu:
Jeder:
quelle
Was? Ab 2010 hat niemand erwähnt, dass Ruby eine Geldstrafe für / in-Schleife hat (es wird nur von niemandem verwendet):
quelle
quelle
Rubys Aufzählungsschleifensyntax ist anders:
Dies lautet "Aufruf der Methode 'each' der Array-Objektinstanz 'collection', die einen Block mit dem Argument 'blockargument' verwendet". Die Blocksyntax in Ruby lautet 'do ... end' oder '{...}' für einzeilige Anweisungen.
Das Blockargument '| item |' ist optional, aber falls angegeben, repräsentiert das erste Argument automatisch das in einer Schleife aufgezählte Element.
quelle