我创建了一个递归函数,试图解析解析列表中的信息。这有点难以解释,但它就像
在解析维基百科电影页面或演员页面的解析函数中,首先从维基百科演员页面解析电影摄影列表 - >在解析列表上调用相同的函数 - >重复
我设置了一个计算迭代次数的全局变量,但是当我尝试从函数中突破并继续执行下一步时,
if $counter > 10
return nil
end
但它不会立即结束,因为仍有函数被调用(因为它是递归的)。我尝试使用“abort”但是这个只是终止了程序而不是继续下一个程序。
有没有办法立即停止递归运行并继续下一步而不中止程序?
答案 0 :(得分:-3)
如果没有更多代码,有点难以回答。但我想你会寻找next
或break
来跳出递归。
next
跳转到最内部循环的下一次迭代。如果在块内调用,则终止块的执行(yield或调用返回nil)。
for i in 0..5
if i < 2 then
next
end
puts "Value of local variable is #{i}"
end
结果:
break
终止最内部的循环。如果在块内调用,则终止具有关联块的方法(方法返回nil)。
for i in 0..5
if i > 2 then
break
end
puts "Value of local variable is #{i}"
end
结果: