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

如果我删除 ( ) 括号,上面的行会引发语法错误 ..Unexpected tIdentifier 。为什么 ?

4

1 回答 1

7

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

if语句周围的括号:

if (var = method arg)
end

参数周围的括号:

if var = method(arg)
end

如果没有某种形式的指导,它将无法锁定您陈述的确切含义。如果您来自 Perl、C++ 或 JavaScript 等括号不是可选的背景,这绝不是问题。Ruby 异常宽容。

于 2013-02-19T19:53:05.750 回答