4
什么是红宝石的正确方法是从自身内部调用一个方法来重新运行 在当@dest_reenter等于下面的示例是我想的b_stage方法再次执行调用方法来执行再次
def b_stage
if @dest_reenter == 'yes'
@dest_reenter = nil
b_stage
end
end
什么是红宝石的正确方法是从自身内部调用一个方法来重新运行 在当@dest_reenter等于下面的示例是我想的b_stage方法再次执行调用方法来执行再次
def b_stage
if @dest_reenter == 'yes'
@dest_reenter = nil
b_stage
end
end
这就是你如何做递归,但使用这些实例变量是不是要走的路。一个更好的例子是这样的:
def b_stage(i)
if i < 5
puts i
i += 1
b_stage(i)
end
end
如果调用b_stage(0)
,输出将是
0
1
2
3
4
使用一个单独的方法:
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
这是正确的事情是这样的书面。你对代码有任何问题吗? – jergason 2010-08-16 21:06:46
顺便说一句,它被称为递归(http://en.wikipedia.org/wiki/Recursion) – 2010-08-16 21:16:33
我在红宝石中使用这个概念,但执行不再发生。我怀疑这是否在ruby中有效 – veccy 2010-08-16 21:42:42