瓜瓜派的瓜瓜
分类: IT业界
2012-01-09 11:02:55
redo和retry都是用来重新执行部分循环,但不同点在于:redo只是重新执行当前循环,而retry重新执行整个循环。
redo举例:
(0..5).each do |i|
puts "Value: #{i}"
redo if i > 2
end
结果显示,只有最后的迭代(3)被重复了:
Value: 0
Value: 1
Value: 2
Value: 3
Value: 3
Value: 3
# ... 3一直循环。
retry举例:
(0..5).each do |i|
puts "Value: #{i}"
retry if i > 2
end
retry执行后,循环又从最先开始了:
Value: 0
Value: 1
Value: 2
Value: 3
Value: 0
Value: 1
Value: 2
# ... 也是一直循环。