Comment faire ce type de boucle for dans Ruby?
for(int i=0; i<array.length; i++) {
}
Comment faire ce type de boucle for dans Ruby?
for(int i=0; i<array.length; i++) {
}
Réponses:
array.each do |element|
element.do_stuff
end
ou
for element in array do
element.do_stuff
end
Si vous avez besoin d'index, vous pouvez utiliser ceci:
array.each_with_index do |element,index|
element.do_stuff(index)
end
each
c'est génial. Mais parfois, je veux juste une putain de boucle for traditionnelle. Parfois, la "méthode Ruby" peut être tout simplement ennuyeuse.
limit = array.length;
for counter in 0..limit
--- make some actions ---
end
l'autre façon de faire est la suivante
3.times do |n|
puts n;
end
cela affichera 0, 1, 2, donc pourrait être utilisé comme un itérateur de tableau aussi
Pensez que cette variante correspond mieux aux besoins de l'auteur
Je continue à frapper ceci comme un lien principal pour google "ruby for loop", donc je voulais ajouter une solution pour les boucles où l'étape n'était pas simplement "1". Dans ces cas, vous pouvez utiliser la méthode «step» qui existe sur les objets Numerics et Date. Je pense que c'est une approximation proche pour une boucle «pour».
start = Date.new(2013,06,30)
stop = Date.new(2011,06,30)
# step back in time over two years, one week at a time
start.step(stop, -7).each do |d|
puts d
end
array.each_index do |i|
...
end
Ce n'est pas très rubis, mais c'est le meilleur moyen de faire la boucle for à partir d'une question en Ruby
each
mais plutôt each_index
. +1
Si vous n'avez pas besoin d'accéder à votre tableau , (juste une simple boucle for), vous pouvez utiliser upto ou each:
Jusqu'à:
1.9.3p392 :030 > 2.upto(4) {|i| puts i}
2
3
4
=> 2
Chaque:
1.9.3p392 :031 > (2..4).each {|i| puts i}
2
3
4
=> 2..4
Quelle? Depuis 2010 et personne n'a mentionné que Ruby avait une boucle fine for / in (c'est juste que personne ne l'utilise):
ar = [1,2,3,4,5,6]
for item in ar
puts item
end
La syntaxe de la boucle d'énumération de Ruby est différente:
collection.each do |item|
...
end
Cela se lit comme "un appel à la méthode 'each' de l'instance d'objet tableau 'collection' qui prend un bloc avec 'blockargument' comme argument". La syntaxe de bloc dans Ruby est 'do ... end' ou '{...}' pour les instructions sur une seule ligne.
L'argument de bloc '| item |' est facultatif mais s'il est fourni, le premier argument représente automatiquement l'élément énuméré en boucle.