我是ruby的新手,但我想创建一个使用数组(或类似参数)的case块
这是我的想法
thirty_one_days_month = [1, 3, 5, 7, 8, 10, 12]
thirty_days_month = [4, 6, 9, 11]
case month
when thirty_one_days_month #instead of 1, 3, 5, 7, 8, 10, 12
#code
when thirty_days_month #instead 4, 6, 9, 11
#code
我知道这段代码不会起作用,但这一切都可能吗?
答案 0 :(得分:4)
使用splat运算符:
case month
when *thirty_one_days_month
#code
when *thirty_days_month
#code
end
无论如何,这就是我写它的方式:
days_by_month = {1 => 31, 2 => 28, ...}
case days_by_month[month]
when 31
# code
when 30
# code
end
答案 1 :(得分:1)
您可以使用如下的案例陈述:
case
when thirty_one_days_month.include?(month)
puts "31 day month"
when thirty_days_month.include?(month)
puts "30 day month"
else
puts "February"
end