Ruby Iteratoren

Einfach ausgedrückt: Iteration bedeutet, dasselbe wiederholt zu tun, daher wird ein Iterator verwendet, um dasselbe mehrmals zu wiederholen.

Iteratoren sind vonSammlungenunterstützte Methoden. Objekte, die eine Gruppe von Datenelementen speichern, werden Sammlungen genannt. In Ruby können Arrays und Hashes als Sammlungen bezeichnet werden.

Iteratoren geben nacheinander alle Elemente einer Sammlung zurück. Hier werden wir zwei Iteratoren besprechen,eachundcollect。

Ruby eachIteratoren

Der each-Iterator gibt alle Elemente eines Arrays oder eines Hashes zurück.

Syntax

Sammlung.each do |Variable| Code end

istSammlungjedes Element in der Sammlung führtCodeaus. Hier kann die Sammlung ein Array oder ein Hash sein.

Beispiele

#!/usr/bin/ruby ary = [1,2,3,4,5] ary.each do |i| puts i end

Ausprobieren »

Die Ausgabe des obigen Beispiels ist:

1
2
3
4
5

eachDer Iterator ist immer mit einem Block verknüpft. Er gibt jeden Wert des Arrays nacheinander an den Block zurück. Der Wert wird in der Variablenigespeichert und dann auf dem Bildschirm angezeigt.

Ruby collectIteratoren

collectDer Iterator gibt alle Elemente einer Sammlung zurück.

Syntax

collection = collection.collect

collectDie Methode muss nicht immer mit einem Block verknüpft sein.collectDie Methode gibt die gesamte Sammlung zurück, egal ob es sich um ein Array oder ein Hash handelt.

Beispiele

Beispiele

#!/usr/bin/ruby a = [1,2,3,4,5] b = Array.new b = a.collect{ |x|x } puts b

Ausprobieren »

Die Ausgabe des obigen Beispiels ist:

1
2
3
4
5

Hinweis:collectDie Methode ist nicht der richtige Weg, um zwischen Arrays zu kopieren. Es gibt eine andere Methode namensclone, die verwendet wird, um ein Array in ein anderes Array zu kopieren.

Wenn Sie eine Operation für jeden Wert ausführen möchten, um ein neues Array zu erhalten, verwenden Sie normalerweise die Methode collect. Der folgende Code erzeugt beispielsweise ein Array, dessen Werte das 10-Fache jedes Werts in a sind.

Beispiele

#!/usr/bin/ruby a = [1,2,3,4,5] b = a.collect{|x| 10*x} puts b

Ausprobieren »

Die Ausgabe des obigen Beispiels ist:

10
20
30
40
50
Andere Erweiterungen