web-dev-qa-db-fra.com

Que signifie "(...) interprété comme une expression groupée"?

J'utilise un lisseur Ruby dans Atom et, pour certaines lignes, l'avertissement suivant est émis:

(...) interpreted as grouped expression

Voici un exemple de ligne qui obtient cet avertissement:

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

Comment améliorer cette ligne pour faire disparaître l'avertissement?

17
Jasper Kennis

L'avertissement est 

(...) interpreted as grouped expression

Et cela signifie exactement ce qu'il dit: dans Ruby, les parenthèses peuvent être utilisées à trois fins, le regroupement d'expressions, les listes de paramètres et les listes d'arguments. Cet avertissement est émis lorsque Ruby pense que vous souhaitez une liste d’arguments mais a plutôt écrit une expression groupée. La cause la plus commune est un espace entre le nom du message et la liste des arguments dans un message envoyé comme suit:

foo.bar (1, 2)

Cela sera interprété pas comme une liste d’arguments pour l’envoi du message, mais plutôt comme une expression groupée, qui, dans ce cas particulier, est une SyntaxError.

Dans votre cas particulier, l'avertissement semble être un faux positif.

14
Jörg W Mittag

Essayez de supprimer l’espace entre not et la parenthèse 

5
Mourad

L'avertissement que je reçois vient de MRI Ruby lui-même (avec les options -wc), et je pense que vous avez une faute de frappe. Le message que je reçois n'a pas la Parole "ancrée" mais "groupée". 

Les parenthèses en Ruby peuvent être utilisées pour l’une des deux choses suivantes: regrouper des expressions ou marquer la liste des arguments d’une fonction ou d’une méthode. 

Ce message d'erreur dit que, parmi ces deux options, Ruby le traite comme une expression. Notez qu'il est possible pour Ruby de définir une méthode appelée "pas". 

Et dans ce cas particulier, peu importe la façon dont Ruby interprète la parenthèse. 

Une façon de se débarrasser du message est de supprimer l’espace entre "non ("). Si vous pensez que cela ne va pas, je suis d’accord avec vous. 

0
rocky