很多变量需要一些处理,所以我在检查它们中是否有任何一个为
nil 。是否有更有效的编写以下代码的方法?
unless a.nil? || b.nil? || c.nil? || d.nil? || e.nil? || f.nil? || g.nil?
render 'view'
end
我应该避免在一行上检查很多变量是否为nil
吗?
false
是有效值还是和nil
一样?如果false
和nil
一样,那么我可以直接省略.nil?
方法调用(这样反而会降低性能)。即使其他代码看起来更好,我也怀疑任何东西都比 @Meier 的答案表现得更好...(除了 可能 省略if
,这样我们就可以得到a && b && c && d && e && f && render('view')
)。 - Mystif [a,b,c,d,e,f,g].none{ |x| x.nil? || x.empty? }
是否是一个好的解决方案? - massaskillzblank?
方法,该方法可在NilClass、String和Array的实例上调用。因此,.none(&:blank?)
可能是您要查找的内容。 - zeteticnil
或false
的数组(例如[1, nil]
或[false, nil]
),该怎么办?对于空哈希或nil
哈希,该怎么办?对于空字符串呢?对于只有空格、换行等的字符串呢?false
或nil
呢?...另外,我不确定您要解决什么问题,但我认为不同的设计可能会帮助您避免使用这个庞大的if
语句。 - Mystblank?
会对空格字符串返回true
(例如:" \n\t".blank? == true
)。 - Myst