我有一个 if/else 条件,if 和 else 部分是相同的,除了使用的运算符。在一种情况下<
,在另一种情况下>
。有没有办法有条件地设置该运算符以干燥代码?
if count_year < end_year
while count_year <= end_year
if count_year % 4 == 0
if count_year % 100 != 0
all_years << count_year unless (count_year % 400 == 0)
end
end
count_year += 1
end
puts all_years
elsif count_year > end_year
while count_year >= end_year
if count_year % 4 == 0
if count_year % 100 != 0
all_years << count_year unless (count_year % 400 == 0)
end
end
count_year -= 1
end
puts all_years.reverse
end
这是打印两个给定年份之间的闰年程序的一部分。我觉得必须有一种方法不必重复循环两次。类似的东西:count_year < end_year ? operator = "<" : operator = ">"
- 然后使用该变量将运算符替换为代码块或其他东西?有任何想法吗?