分配第一个非零值

时间:2011-04-16 02:26:11

标签: ruby

假设我定义了以下变量:

a = 6
b = 4
c = 0

我想将第一个非零值分配给另一个变量,但顺序相反(c - > b - > a)。我最初尝试d = c || b || a,但仍然导致0.是否有单行方式这样做?

2 个答案:

答案 0 :(得分:3)

使用detect

[c,b,a].detect { |i| i > 0 }

答案 1 :(得分:0)

[c,b,a].select { |i| i > 0 }.first => 4