ruby的redo和retry 回顾
程序员文章站
2022-03-04 21:29:10
...
ary=[1,2,3] ary.each do |i| puts i i+=1 redo if i==2 end
输出:1 2 2 3
redo做的动作是:条件满足,则以当前的条件重复一次{ block}的动作,当前的条件包括(当前的变量值)
ary=[1,2,3] ary.each do |i| puts i i+=1 retry if i==2 end
输出:死循环 1
这里我们没有看到 i+=1,输出 2,说明,retry的重复动作包括从{block}外开始,包括i的值。