2015-06-25 32 views
13

我使用Atom的一個Ruby棉短絨和一些線條它提供了以下警告:「(...)解釋爲分組表達」是什麼意思?

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

應該怎樣說:

(...) interpreted as grouped expression 

一條線,得到的這個警告是這樣的一個例子線路改進,使警告消失?

+0

[百科](HTTPS://en.wikipedia。 org/wiki/Ground_expression)表示一個Ground表達式沒有自由變量,我認爲這個錯誤是因爲Ruby已經確定你的條件是我能夠在編譯時計算出來的,但是我知道沒有ruby,我只是基於這個這個術語 – Binnut

回答

12

的警告

(...) interpreted as grouped expression 

這也意味着正是它說:在Ruby中,括號可用於三個目的,表達分組,參數列表和參數列表。當Ruby認爲你想要一個參數列表,而是寫入一個分組表達式時,會發出這個警告。最常見的原因是消息,並在消息中的參數列表的名稱之間的空白髮送這樣的:

foo.bar (1, 2) 

這將被解釋作爲消息發送的參數列表,而是一個分組表達,在這種情況下,它是一個SyntaxError

在您的具體情況下,警告似乎是誤報。

+0

謝謝,我想沒有其他的解決方案,只能將條件抽象爲一個var?考慮到我得到的大多數線條的複雜性,這不會是一件壞事。 –

5

嘗試not和括號之間刪除空格

0

我得到的警告來自MRI Ruby本身(選項-wc),我認爲你在那裏有一個錯字。我得到的消息沒有「接地」但是「分組」的字樣。

Ruby中的括號可以用於以下兩種情況中的一種,對錶達式進行分組或標記函數或方法的參數列表。

那個錯誤信息說的是這兩個選項中,Ruby將它當作一個表達式來對待。請注意,它可以在Ruby中定義一個名爲「not」的方法。

而在這種特殊情況下,Ruby解釋圓括號的方式並不重要。 。擺脫了消息的

一種方法是去除之間的空間「不是(」如果你認爲這是扭曲的,我同意你的看法

相關問題