2gua 发表于 2010-12-09 09:07

[技巧]Redo和Retry比较

本帖最后由 2gua 于 2010-12-09 09:14 编辑

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
# ... 也是一直循环。

中关村村草 发表于 2010-12-09 14:05

回复 1# 2gua


    教课呢吧 瓜哥!

2gua 发表于 2010-12-09 14:17

回复 2# 中关村村草


    宣传Ruby呀,哈哈哈。

中关村村草 发表于 2010-12-10 15:36

回复 3# 2gua


    瓜哥 今儿怎没见你的大作啦

2gua 发表于 2010-12-10 15:52

回复 4# 中关村村草


    今天比较忙,刚才还出去了下,等一下看看。
页: [1]
查看完整版本: [技巧]Redo和Retry比较