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

Bea*_*ude 2 ruby ruby-on-rails

if (ax_response = OpenID::AX::FetchResponse.from_success_response openid_response)
Run Code Online (Sandbox Code Playgroud)

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

tad*_*man 7

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

if声明附近的括号:

if (var = method arg)
end
Run Code Online (Sandbox Code Playgroud)

围绕论点的括号:

if var = method(arg)
end
Run Code Online (Sandbox Code Playgroud)

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