Ruby代替goto

时间:2014-04-21 17:54:48

标签: ruby

我如何在Ruby中做这样的事情?

if variable = something  
    do A  
    do B  
    do D  
elsif variable = something different
    do A
    do B
    do C
    do D
else
    do A
    do C
    do D

A = set of loops with if else
B = set of loops with if else
C = set of loops with if else
D = final steps

寻找在Ruby中实现类似内容的方法。我确定这个问题在某个地方得到了回答,但我不知道它会被称为什么。我找到了一些关于宝石的信息,允许你使用goto但我更愿意学习正确的方法来做到这一点(似乎这可能是一个笑话)。我更喜欢自己编写代码,但如果有助于回答我的问题,我可以把我的实际代码编写出来。

如果有人能指出我正确的方向。

此外,如果goto不是一个笑话,为什么不能使用?

2 个答案:

答案 0 :(得分:7)

而不是goto只为A,B等创建函数并使用它们

例如:

def A
  # Lot of code
end

现在,您只需撰写goto即可A

而不是使用if / else,您可以使用switch case,以便您的代码看起来像

A
case variable
when something
  B
  D
when something else
  B
  C
  D
else
  C
  D
end

答案 1 :(得分:0)

这是开关盒的经典用途。 Here就是你在ruby中的表现。另外,我会制作所有的方法并从when

内部调用它们