Latest web development tutorials

Ruby iterator

En termes simples: Iteration (iterate) se réfère à répéter la même chose, de sorte que le iterator (iterator) qui est utilisé pour répéter la même chose plusieurs fois.

Iterator est unecollectionde méthodes prises en charge. Enregistrement d'un ensemble d'objets de données appelés membres de la collection. En Ruby, les tableaux (Array) et hachage (Hash) peut être appelé une collection.

Iterator renvoie tous les éléments de la collection, un par un. Ici , nous allons discuter de deuxitérateurs,chacun etrecueillir.

Rubychaque iterator

chaque itération renvoie tous les éléments d'un tableau ou de hachage.

grammaire

collection.each do |variable|
   code
end

L' exécutionde codeestdéfinipour chaque élément. Ici, le jeu peut être un tableau ou de hachage.

Exemples

#!/usr/bin/ruby

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

Exécutez l'exemple ci-dessus est sortie:

1
2
3
4
5

chaqueitération est toujours associé à un bloc. Elle retourne un tableau de valeurs à chaque bloc, un après l'autre. La valeur est stockée dans la variablei, puis affichée à l'écran.

Rubyrecueillir iterator

recueillirdes déclarations de iterator tous les éléments de la collection.

grammaire

collection = collection.collect

collecterprocédé ne doit pas toujours être associé à un bloc. méthode decollecteretourne toute la collection, que ce soit un tableau ou hachage.

Exemples

#!/usr/bin/ruby

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

Exécutez l'exemple ci-dessus est sortie:

1
2
3
4
5

Remarque: la collecte méthode est pas la bonne façon de procéder à la réplication inter-réseau.Il y a une autre méthode appeléeclonepour copier un tableau à un autre tableau.

Lorsque vous voulez faire quelque chose afin d'obtenir une valeur pour chaque nouveau tableau, vous utilisez généralement la méthode de collecte. Par exemple, le code suivant génère un tableau dont la valeur est un facteur 10 pour chaque valeur.

#!/usr/bin/ruby

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

Exécutez l'exemple ci-dessus est sortie:

10
20
30
40
50