Itérateur Ruby


Pour faire simple : l'itération fait référence à faire la même chose à plusieurs reprises, donc un itérateur est utilisé pour répéter la même chose plusieurs fois.

Iterator est une méthode supportée par Collection. Un objet qui stocke un ensemble de données membres est appelé une collection. Dans Ruby, les tableaux et les hachages peuvent être appelés ensembles.

L'itérateur renvoie tous les éléments de la collection, les uns après les autres. Ici, nous discuterons de deux itérateurs, each et collect.

Ruby each Itérateur

each Iterator renvoie tous les éléments d'un tableau ou d'un hachage.

Grammar

collection.each do |variable|
   code
end

exécute le code pour chaque élément de la collection. Ici, la collection peut être un tableau ou un hachage.

Instance

#!/usr/bin/ruby

ary = [1,2,3,4,5]
ary.each do |i|
   puts i
end


Le résultat de sortie de l'exemple ci-dessus est :

1
2
3
4
5

each L'itérateur est toujours associé à une association de blocs. Il renvoie chaque valeur du tableau au bloc, l'une après l'autre. La valeur est stockée dans la variable i puis affichée à l'écran.

Ruby collect Itérateur

collect Iterator renvoie tous les éléments de la collection. La méthode

Syntaxe

collection = collection.collect

collect n'a pas besoin d'être toujours associée à un bloc. La méthode collect renvoie la collection entière, qu'il s'agisse d'un tableau ou d'un hachage.

Instance

#!/usr/bin/ruby

a = [1,2,3,4,5]
b = Array.new
b = a.collect{ |x|x }
puts b


Le résultat de sortie de l'instance ci-dessus est :

1
2
3
4
5

Remarque : collecter La méthode n'est pas la bonne façon de copier entre des tableaux. Il existe une autre méthode appelée clone qui copie un tableau dans un autre.

Vous utilisez généralement la méthode collect lorsque vous souhaitez effectuer une opération sur chaque valeur afin d'obtenir un nouveau tableau. Par exemple, le code suivant génère un tableau dont les valeurs sont 10 fois chaque valeur de a.

#!/usr/bin/ruby

a = [1,2,3,4,5]
b = a.collect{|x| 10*x}
puts b


Le résultat de sortie de l'exemple ci-dessus est :

10
20
30
40
50