我如何在Ruby中执行这种类型的for循环?
for(int i=0; i<array.length; i++) {
}
Run Code Online (Sandbox Code Playgroud)
Eim*_*tas 115
array.each do |element|
element.do_stuff
end
Run Code Online (Sandbox Code Playgroud)
要么
for element in array do
element.do_stuff
end
Run Code Online (Sandbox Code Playgroud)
如果您需要索引,可以使用:
array.each_with_index do |element,index|
element.do_stuff(index)
end
Run Code Online (Sandbox Code Playgroud)
Ph0*_*n1x 74
limit = array.length;
for counter in 0..limit
--- make some actions ---
end
Run Code Online (Sandbox Code Playgroud)
另一种方法是做到这一点
3.times do |n|
puts n;
end
Run Code Online (Sandbox Code Playgroud)
多数民众赞成将打印0,1,2,所以也可以像数组迭代器一样使用
认为该变体更符合作者的需求
dsz*_*dsz 28
我一直把它作为google"ruby for loop"的顶级链接,所以我想为循环添加一个解决方案,其中步骤不仅仅是'1'.对于这些情况,您可以使用Numerics和Date对象上存在的"step"方法.我认为这是'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
Run Code Online (Sandbox Code Playgroud)
小智 18
等价就是
for i in (0...array.size)
end
Run Code Online (Sandbox Code Playgroud)
要么
(0...array.size).each do |i|
end
Run Code Online (Sandbox Code Playgroud)
要么
i = 0
while i < array.size do
array[i]
i = i + 1 # where you may freely set i to any value
end
Run Code Online (Sandbox Code Playgroud)
EmF*_*mFi 17
array.each_index do |i|
...
end
Run Code Online (Sandbox Code Playgroud)
它不是非常Rubyish,但它是在Ruby中从问题中进行for循环的最佳方式
yts*_*yts 12
要循环迭代一次,请尝试:
n.times do
#Something to be done n times
end
Run Code Online (Sandbox Code Playgroud)
什么?从2010年开始,没有人提到Ruby有一个很好的for/in循环(它只是没有人使用它):
ar = [1,2,3,4,5,6]
for item in ar
puts item
end
Run Code Online (Sandbox Code Playgroud)
如果您不需要访问您的阵列(只是一个简单的for循环),您可以使用upto或each:
取决于:
1.9.3p392 :030 > 2.upto(4) {|i| puts i}
2
3
4
=> 2
Run Code Online (Sandbox Code Playgroud)
每:
1.9.3p392 :031 > (2..4).each {|i| puts i}
2
3
4
=> 2..4
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
112258 次 |
| 最近记录: |