如果测试为真,我想放1,如果不是,则放0。我还想增加一个计数器,每次测试成功时计数。我现在有这个:
puts test1 ? sum += 1 : 0
puts test2 ? sum += 1 : 0
puts test3 ? sum += 1 : 0
puts test4 ? sum += 1 : 0
很明显,问题在于,如果我每次递增总和,那么我不是打印1而是总和的值。
我尝试制作一个递增总和的小方法然后像这样返回1:
def inc_sum_ret_1(sum)
sum += 1
1
end
并称之为“sum + = 1”。当然,这每次只增加0到1。
这样做有好办法吗?从知识分子的角度来看,我更好奇,而不是让我的代码特别整洁。
答案 0 :(得分: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
会好得多。