从自身内部调用方法再次执行

发布于 2024-09-14 06:25:59 字数 211 浏览 2 评论 0原文

ruby 中从自身内部调用方法重新运行的正确方法是什么 在下面的示例中,当 @dest_reenter 等于 yes 时,我希望 b_stage 方法再次执行

def b_stage 
    if @dest_reenter == 'yes'
        @dest_reenter = nil
        b_stage
    end
end

What is the proper way in ruby to call a method from within itself to rerun
In the sample below when @dest_reenter is equal to yes I would want the b_stage method to execute again

def b_stage 
    if @dest_reenter == 'yes'
        @dest_reenter = nil
        b_stage
    end
end

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

伤感在游骋 2024-09-21 06:25:59

这就是递归的方式,但使用这些实例变量并不是正确的方法。一个更好的例子是这样的:

def b_stage(i)
    if i < 5
        puts i
        i += 1
        b_stage(i)
    end
end

如果你调用 b_stage(0),输出将是

0
1
2
3
4

That is how you do recursion, but using those instance variables isn't the way to go. A better example would be something like this:

def b_stage(i)
    if i < 5
        puts i
        i += 1
        b_stage(i)
    end
end

If you call b_stage(0), the output will be

0
1
2
3
4
油焖大侠 2024-09-21 06:25:59

使用单独的方法:

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

Use a separate method:

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文