2015-06-25 5 views
13

Ben Atom Ruby linter kullanıyorum ve bazı hatlar için aşağıdaki uyarı verir:"(?) Gruplandırılmış ifade olarak yorumlandı" ne demektir?

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

nasıl çıkarabiliriz:

(...) interpreted as grouped expression 

bu uyarı şudur s olsun bir çizginin örneği uyarının ortadan kalkması için hat geliştirilmeli mi?

+0

[Vikipedi] (https:. //en.wikipedia. org/wiki/Ground_expression) bir Ground ifadesinin hiçbir serbest değişken içermediğini söyler.Bu Ruby'i, derlemenizin zamanında hesaplanabildiğini belirlediğimden bu hatayı anladım.Ama rubyumu bilmiyorum, sadece bunu temel aldım – Binnut

cevap

12

uyarı

(...) interpreted as grouped expression 

olduğunu Ve tam olarak da söylediğini anlama gelir: ifadesi gruplama, Ruby, parantez üç amaçlar için kullanılabilir, parametre listeleri ve argüman listeleri. Ruby, bir argüman listesi istediğinizi düşündüğünden, ancak bunun yerine gruplandırılmış bir ifade yazdığında bu uyarı yayılır. En yaygın nedeni mesaj ve bir mesajda argüman listesinin adına arasındaki boşluk olan böyle göndermek: Bu mesaj gönderme için bir argüman listesi olarak değilyorumlanacaktır ziyade bir gruplandırılmış

foo.bar (1, 2) 

Bu durumda, bir SyntaxError olan ifade. Özel durumda, uyarı yanlış bir pozitif gibi görünüyor.

+0

Teşekkürler, sanırım başka bir çözüm yok ama koşulu bir varyant olarak soyutlamak için var mıyım? Zaten bunun için alıyorum hatların çoğunun karmaşıklığı göz önüne alındığında kötü bir şey olmazdı. –

5

not ve parantez arasındaki boşluğu kaldır çalışın

0

alıyorum uyarı MR Ruby (seçenekleriyle -wc birlikte) kendisinden gelen ve ben orada bir yazım hatası var. Aldığım mesajda "topraklanmış", ancak "gruplandırılmış" kelimesi yok. Ruby

Parantez grup ifadeleri veya bir işlevin veya yöntemin argüman listesi münasebetiyle, iki şeyden biri için kullanılabilir.

Bu hata iletisinin söylediği şey, bu iki seçeneğin, Ruby'nin bir ifade gibi davranmasıdır. Ruby'de "not" adlı bir yöntem tanımlamanızın mümkün olduğunu unutmayın.

Ve bu özel durumda, Ruby'nin parantezi hangi yönde yorumladığı önemli değil. . Eğer bu garip olduğunu düşünüyorsanız mesajdan kurtulmak için

bir yolu arasındaki boşluğu kaldırmaktır "değil (" Ben size katılıyorum