ruby什么是最好的条件:bar如果foo vs foo和bar

时间:2014-08-14 09:38:14

标签: ruby syntax conditional-statements convention

在Ruby中检查条件和运行方法的最佳方法是什么?哪一个最具可读性?

  

如果foo吧

  

foo and bar

2 个答案:

答案 0 :(得分:2)

我会根据情况使用其中一个。

如果我有兴趣根据遇到的条件运行方法(又名条件没有副作用):

do_something if this_condition_is_true

如果我只对另一个方法成功完成(也就是两个方法都有副作用)感兴趣运行方法:

do_something and do_something_other

答案 1 :(得分:2)

编辑正如Smar所指出的,对于最新的Ruby版本,以下情况可能并非如此。现在检查。问题仍在继续here


spickermann提供了一个很好的答案,但是它的第二个案例还不够清楚,所以我会把它拼出来。

通常,您应该使用if,因为它是为此目的而设计的。

bar if foo

但通常,您希望在评估条件的过程中定义局部变量。在这种情况下,您不能使用postfix if表示法;以下将引发错误(前提是x未定义):

bar(x) if x = h[:foo]

如果你想把它放在一行,你必须使用and

x = h[:foo] and bar(x)