内置的方法用于测试带有赋值的nil或空数组?

时间:2014-04-02 17:47:50

标签: ruby arrays

我可以指定一个变量,这样如果b为零,c将被分配到a

a = b || c 

对于只有零元素的数组,这样做的好方法是什么?

这是我的方式:

a = b unless b.to_a.empty? 
a = c unless a.to_a.empty?

3 个答案:

答案 0 :(得分:3)

a = b.all?(&:nil?) ? c : b

答案 1 :(得分:2)

我建议使用any?

b = [nil, nil]
c = [1, 2, 3]

b.any? #=> false
c.any? #=> true

a = [b, c].detect(&:any?)
a #=> [1, 2, 3]

答案 2 :(得分:1)

执行以下操作:

a = b.compact.empty? ? c : b
我认为,在这种情况下,

Array#compact将是有用的方法。