Как это сделать для цикла цикла в Ruby?
for(int i=0; i<array.length; i++) {
}
Как это сделать для цикла цикла в Ruby?
for(int i=0; i<array.length; i++) {
}
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". В этих случаях вы можете использовать метод "step", который существует в объектах Numerics и Date. Я думаю, что это близкое приближение для цикла "для".
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
Если вам не нужен доступ к вашему массиву (просто для цикла), вы можете использовать upto или каждый:
Upto:
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
['foo', 'bar', 'baz'].each_with_index {|j, i| puts "#{i} #{j}"}
Синтаксис цикла перечисления Ruby отличается:
collection.each do |item|
...
end
Это читается как "вызов метода" каждый "экземпляра экземпляра объекта массива, который принимает блок с" blockargument "в качестве аргумента". Синтаксис блока в Ruby - это "do... end" или "{...}" для операторов с одной строкой.
Аргумент блока '| item |' является необязательным, но если предоставлено, первый аргумент автоматически представляет зациклированный нумерованный элемент.
размер = массив [1, 2, 3, 37,5]
для меня в 0..size.length
puts "Value of local variable is #{i}"
конец