1
2
3
4
5
6
|
ary=[ 1 , 2 , 3 ] ary. each do |i| puts
i i+= 1 redo if i== 2 end <br><span><span> #输出:</span><span
class="number">1</span><span> </span><span class="number">2</span><span> </span><span class="number">2</span><span> </span><span class="number">3</span><span> </span></span>
redo做的动作是:条件满足,则以当前的条件重复一次{
block}的动作,当前的条件包括(当前的变量值)
Ruby redo 语句:语法:redo
会重新启动启动这个最内部的循环迭代,而不检查循环条件。
会重新启动 yield or call ,如果一个块内调用。 这将产生以下结果,将执行无限循环:#!/usr/bin/ruby for i in 0..5 if i < 2 then puts "Value of local variable is #{i}" redo end end Value of local variable is 0 Value of local variable is 0 ............................ Ruby retry 语句:语法:retry
如果 retry 表达出现在 rescue 子句,则从开始重新开始。 begin do_something # exception raised rescue # handles error retry # restart from beginning end 如果出现重试迭代,块,或体内的表达,重新启动迭代调用。迭代器的参数条件将重新计算。 for i in 1..5 retry if some_condition # restart from i == 1 end #!/usr/bin/ruby for i in 1..5 retry if i > 2 puts "Value of local variable is #{i}" end 这将产生以下结果,将进入无限循环: Value of local variable is 1 Value of local variable is 2 Value of local variable is 1 Value of local variable is 2 Value of local variable is 1 Value of local variable is 2 ............................ |
ruby的redo和retry 回顾
最新推荐文章于 2018-03-18 16:43:00 发布