ruby从内部调用方法重新运行的正确方法是什么 在下面的示例中,当@dest_reenter等于yes时,我希望b_stage方法再次执行
def b_stage
if @dest_reenter == 'yes'
@dest_reenter = nil
b_stage
end
end
答案 0 :(得分:6)
这就是你如何进行递归,但使用这些实例变量不是一种方法。一个更好的例子是这样的:
def b_stage(i)
if i < 5
puts i
i += 1
b_stage(i)
end
end
如果致电b_stage(0)
,输出将为
0
1
2
3
4
答案 1 :(得分:0)
使用单独的方法:
def go
...
middle_thing(true)
end
def middle_thing(first_time)
next_page unless first_time == true
parse_page
end
def parse_page
...(parsing code)
middle_thing(false)
end