0

如果测试为真,我想输入 1,如果不是,我想输入 0。我还想增加一个每次测试成功时计数的计数器。我现在有这个:

puts test1 ? sum += 1 : 0
puts test2 ? sum += 1 : 0
puts test3 ? sum += 1 : 0
puts test4 ? sum += 1 : 0

显然问题是,如果我每次都增加 sum,那么我不是打印 1,而是打印 sum 的值。

我尝试制作一个增加 sum 然后返回 1 的小方法,如下所示:

def inc_sum_ret_1(sum)
  sum += 1
  1
end

并用它代替“sum += 1”。当然,这每次只会从 0 增加到 1。

有没有好的方法来做到这一点?从知识的角度来看,我比让我的代码特别整洁更好奇。

4

1 回答 1

4

好吧,我认为您要编写的代码是

puts test1 ? (sum += 1; 1) : 0
puts test2 ? (sum += 1; 1) : 0
puts test3 ? (sum += 1; 1) : 0
puts test4 ? (sum += 1; 1) : 0

但当然,这不是一段很好的代码。if就代码清晰度和消除重复而言,只使用 会好得多。

于 2013-03-22T19:39:10.483 回答