2013-02-19 57 views
1
if (ax_response = OpenID::AX::FetchResponse.from_success_response openid_response) 

上述行如果我删除()palenthesis它会引发语法错误..意外的tIdentifier。为什么?为什么remove()for ruby​​条件引发错误?

+2

你能发布整个异常吗? – Automatico 2013-02-19 19:42:15

+0

哪个标识符是问题?如果仅在'.from_success_response'调用周围放置括号,或者仅在'openid_response'周围放置括号,它会起作用吗? – 2013-02-19 19:43:18

+0

你想把结果赋给'ax_response'还是测试相等? – iamnotmaynard 2013-02-19 19:47:48

回答

6

Ruby非常擅长挑选任意语法,但没有括号可以指导它,有时它无法弄清楚你的意图。在这种情况下,你有两个选择。围绕if声明

支架:

周围参数
if (var = method arg) 
end 

支架:

if var = method(arg) 
end 

没有某种执教它的不是要能够锁定在你的语句的准确含义。如果您来自像Perl,C++或JavaScript这样的背景,其中的括号不是可选的,那么这绝不是问题。 Ruby非常宽容。

+0

是的答案。谢谢@MrYoshiji – 2013-02-19 19:56:06

相关问题