Синтаксис для цикла for в ruby
Как мне сделать этот тип цикла for в Ruby?
for(int i=0; i<array.length; i++) {
}
10 ответов:
array.each do |element| element.do_stuff end
или
for element in array do element.do_stuff end
Если вам нужен индекс, вы можете использовать это:
array.each_with_index do |element,index| element.do_stuff(index) end
limit = array.length; for counter in 0..limit --- make some actions --- end
другой способ сделать это заключается в следующем
3.times do |n| puts n; end
thats будет печатать 0, 1, 2, так что может быть использован как массив итератор также
думаю, что вариант лучше подходит для потребностей автора
Я продолжаю нажимать это как верхнюю ссылку для google "ruby for loop", поэтому я хотел добавить решение для циклов, где шаг был не просто "1". Для этих случаев вы можете использовать метод "шаг", который существует для объектов Numerics и Date. Я думаю, что это близкое приближение для цикла "for".
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
Это не очень Rubyish, но это лучший способ сделать цикл for из вопроса в Ruby
чтобы повторить цикл фиксированное количество раз, попробуйте:
n.times do #Something to be done n times end
эквивалентность будет
for i in (0...array.size) end
или
(0...array.size).each do |i| end
или
i = 0 while i < array.size do array[i] i = i + 1 # where you may freely set i to any value end
что? С 2010 года и никто не упоминал, что у Ruby есть штраф за / в цикле (это просто никто не использует его):
ar = [1,2,3,4,5,6] for item in ar puts item end
Если вы не нужно обращаться к вашему массиву, (просто простой для цикла) вы можете использовать до или каждая :
до:
1.9.3p392 :030 > 2.upto(4) {|i| puts i} 2 3 4 => 2
каждая:
1.9.3p392 :031 > (2..4).each {|i| puts i} 2 3 4 => 2..4
синтаксис цикла перечисления Ruby отличается:
collection.each do |item| ... end
это читается как"вызов метода 'each' экземпляра объекта массива 'collection', который принимает блок с 'blockargument' в качестве аргумента". Синтаксис блока в Ruby - ' do ... конец' или '{ ... } 'для однострочных операторов.
аргумент блока | / item / ' является необязательным, но если он указан, первый аргумент автоматически представляет циклический перечисляемый элемент.