为什么remove()为ruby条件抛出错误?

时间:2013-02-19 19:40:36

标签: ruby-on-rails ruby

if (ax_response = OpenID::AX::FetchResponse.from_success_response openid_response)

上面的行,如果我删除()括号,则会抛出语法错误。意外的标识符。为什么?

1 个答案:

答案 0 :(得分:6)

Ruby非常善于选择任意语法,但是如果没有括号来指导它有时它无法弄清楚你的意图。在这种情况下,您有两个选择。

围绕if声明的括号:

if (var = method arg)
end

围绕争论的括号:

if var = method(arg)
end

如果没有某种指导,它就无法锁定你陈述的确切含义。如果您来自像Perl,C ++或JavaScript这样的背景,其中括号不是可选的,这绝不是问题。 Ruby非常宽容。