Что означает "(...), интерпретируемое как сгруппированное выражение" означает?

Я использую Ruby linter в Atom, и для некоторых строк он дает следующее предупреждение:

(...) interpreted as grouped expression

Пример строки, которая получает это предупреждение:

elsif not (params[:vacancy].nil? or params[:vacancy]['company_id'].nil? or params[:vacancy]['company_id'] == "0" )

Как улучшить эту линию, чтобы предупредить предупреждение?

Ответ 1

Предупреждение

(...) interpreted as grouped expression

И это означает именно то, что он говорит: в Ruby круглые скобки могут использоваться для трех целей, группировки выражений, списков параметров и списков аргументов. Это предупреждение выдается, когда Ruby думает, что вам нужен список аргументов, но вместо этого написал сгруппированное выражение. Наиболее распространенной причиной является пробел между именем сообщения и списком аргументов в сообщении, отправляемом следующим образом:

foo.bar (1, 2)

Это будет интерпретироваться не как список аргументов для отправки сообщения, а скорее сгруппированное выражение, которое в данном конкретном случае является SyntaxError.

В вашем конкретном случае предупреждение кажется ложным.

Ответ 2

Попробуйте удалить пробел между not и скобкой

Ответ 3

Предупреждение, которое я получаю, связано с MRI Ruby (с параметрами -wc), и я думаю, что у вас есть опечатка. Сообщение, которое я получаю, не имеет слова "заземлено", но "сгруппировано".

Скобка в Ruby может использоваться для одной из двух вещей, группировать выражения или отмечать список аргументов функции или метода.

Что такое сообщение об ошибке - это два этих параметра, Ruby рассматривает его как выражение. Обратите внимание, что в Ruby вы можете определить метод "not".

И в этом конкретном случае не имеет значения, каким образом Ruby интерпретирует скобки.

Один из способов избавиться от сообщения - удалить пробел между "not" ( "Если вы считаете, что это отвратительно, я согласен с вами".