"(...)被解释为分组表达"是什么意思?

Jas*_*nis 17 ruby lint

我在Atom中使用Ruby linter,对于某些行,它会发出以下警告:

(...) interpreted as grouped expression
Run Code Online (Sandbox Code Playgroud)

获得此警告的行的示例如下:

elsif not (params[:vacancy].nil? or params[:vacancy]['company_id'].nil? or params[:vacancy]['company_id'] == "0" )
Run Code Online (Sandbox Code Playgroud)

如何改进这条线以使警告消失?

Jör*_*tag 15

警告是

(...) interpreted as grouped expression
Run Code Online (Sandbox Code Playgroud)

它完全意味着它所说的:在Ruby中,括号可以用于三个目的,表达式分组,参数列表和参数列表.当Ruby认为您需要参数列表但是编写了分组表达式时,会发出此警告.最常见的原因是消息名称和消息中的参数列表之间的空格,如下所示:

foo.bar (1, 2)
Run Code Online (Sandbox Code Playgroud)

这将被解释作为消息发送的参数列表,而是一个分组表达,其在此特定情况下,是一个SyntaxError.

在您的特定情况下,警告似乎是误报.


小智 5

尝试删除not括号和括号之间的空格