是否有一种Rails/Ruby习惯用语,可以检查可枚举对象同时存在且具有非nil
值?
如果我尝试执行nil.any?
,就会出现错误,因此我总是需要执行if foo && foo.any?
。
是否有一种Rails/Ruby习惯用语,可以检查可枚举对象同时存在且具有非nil
值?
如果我尝试执行nil.any?
,就会出现错误,因此我总是需要执行if foo && foo.any?
。
你可以使用ActiveSupport提供的try
方法:
obj.try(:any?)
如果obj.nil?
,则此代码将计算为nil
;如果obj
是空集合,则它将计算为false
。因此,在布尔上下文中,它的值都为假。
if foo&.any?
你也可以使用 andand gem:
foo.andand.any?