括号和Ruby中的if语句

时间:2019-04-29 21:44:19

标签: ruby

我正在处理一些旧代码,遇到了一些我认为在Ruby中很奇怪的东西,我试图绕过它,但是在任何文档中都找不到与它相似的东西。

someMethod()
(
    someOtherStuff()
) if value > 0

我一直看到的if语句的ruby语法遵循更传统的if语句,其下的条件代码以及条件块后的结束标记。这是另一种写法吗,通过对someOtherStuff()的调用有条件地在值> 0的结果上执行吗?还是在做其他事情?

1 个答案:

答案 0 :(得分:2)

# Original snippet

someMethod()
(
    someOtherStuff()
) if value > 0

是一种更长的书写方式

# Snippet 1

someMethod # Note that `someMethod` will always be executed
someOtherStuff if value > 0

如果要使用if语句的传统格式,可以这样编写:

# Snippet 2

someMethod # Same here, it will always be executed
if value > 0
  someOtherStuff
end

代码段1对于编写guard clauses很有用。