Ruby - 打印答案“如果自己的答案(本身)”

时间:2015-10-21 17:40:46

标签: ruby

Ruby问题:

我可以缩短以下代码:

total = Paper.where(available: true).count
puts total if total > 0

我想像这样的东西,但我不知道是否可能:

puts Paper.where(available: true).count if itself > 0

有没有办法在一个简单的行中写出这个想法?

3 个答案:

答案 0 :(得分:4)

if (total = Paper.where(available: true).count) > 0 then puts total end

更新:您可以使用实例变量

puts @total if (@total = Paper.where(available: true).count) > 0

答案 1 :(得分:1)

你所拥有的一切都是完美的。为了好玩,您可以使用Object#tap作为单行代码:

Paper.where(available: true).count.tap { |total| puts total if total > 0 }

答案 2 :(得分:0)

我最能想到的就是这样:

total = Paper.where(available: true).count; puts total if total > 0 

除了用分号而不是新行分隔线之外,它与原始的完全相同。它的可读性往往较低,所以我通常会避免这样做。

作为旁注,虽然我明白你要做什么,老实说,将你的代码从2行减少到1并不是什么大问题。坦率地说,它的方式很好。