是否有Rails / Ruby习惯用于检查枚举是否同时存在并且具有非nil
值?
如果我尝试nil.any?
,我会收到错误,所以我总是要做if foo && foo.any?
。
答案 0 :(得分:9)
您可以使用ActiveSupport提供的try
方法:
obj.try(:any?)
如果nil
或obj.nil?
,如果false
是空集合,则评估为obj
,因此在这两种情况下,它将评估为布尔值中的虚假值上下文。
答案 1 :(得分:1)
我相信您现在可以使用安全导航操作符:
if foo&.any?
答案 2 :(得分:0)
你也可以使用andand gem:
foo.andand.any?