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