Ruby 从内部调用方法以再次执行
在ruby中,从内部调用方法以重新运行的正确方法是什么 在下面的示例中,当@dest_reenter等于yes时,我希望再次执行b_stage方法Ruby 从内部调用方法以再次执行,ruby,recursion,Ruby,Recursion,在ruby中,从内部调用方法以重新运行的正确方法是什么 在下面的示例中,当@dest_reenter等于yes时,我希望再次执行b_stage方法 def b_stage if @dest_reenter == 'yes' @dest_reenter = nil b_stage end end 这就是递归的实现方式,但是使用这些实例变量并不是一种好方法。更好的例子如下: def b_stage(i) if i < 5
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
使用单独的方法:
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
这是正确的写法。你对代码有什么问题吗?顺便说一句,它叫做递归(),我在ruby中使用这个概念,但是执行不会再次发生。我不知道这在鲁比耶是否有效,它是。您的代码中的其他地方有一个bug。那么
@dest\u reenter
不能是'yes'
。它确实是有效的。
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