Ruby Itérateurs

En termes simples : l'itération consiste à faire la même chose de manière répétée, donc un itérateur est utilisé pour répéter la même chose plusieurs fois.

Les itérateurs sont des méthodes prises en charge par lescollections. Les objets qui stockent un groupe de membres de données sont appelés collections. En Ruby, les tableaux et les hachages peuvent être appelés collections.

Les itérateurs renvoient tous les éléments d'une collection, l'un après l'autre. Nous allons ici aborder deux itérateurs,eachetcollect。

Ruby eachItérateurs

L'itérateur each renvoie tous les éléments d'un tableau ou d'un hachage.

Syntaxe

collection.each do |variable| code end

estcollectionchaque élément de la collection exécute lecode. Ici, la collection peut être un tableau ou un hash.

Exemples

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

Essayez-le »

La sortie de l'exemple ci-dessus est :

1
2
3
4
5

eachL'itérateur est toujours associé à un bloc. Il renvoie chaque valeur du tableau au bloc, l'une après l'autre. La valeur est stockée dans la variableiet ensuite affichée à l'écran.

Ruby collectItérateurs

collectL'itérateur renvoie tous les éléments d'une collection.

Syntaxe

collection = collection.collect

collectLa méthode n'a pas toujours besoin d'être associée à un bloc.collectLa méthode renvoie toute la collection, qu'il s'agisse d'un tableau ou d'un hash.

Exemples

Exemples

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

Essayez-le »

La sortie de l'exemple ci-dessus est :

1
2
3
4
5

Remarque:collectLa méthode n'est pas la bonne façon de copier entre tableaux. Il existe une autre méthode appeléeclone, qui est utilisée pour copier un tableau vers un autre tableau.

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

Exemples

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

Essayez-le »

La sortie de l'exemple ci-dessus est :

10
20
30
40
50
Autres extensions