在块内使用评估的case语句

时间:2015-02-16 10:44:01

标签: ruby-on-rails ruby switch-statement

如果我有以下开关声明:

case number
when 10, 11, 12
  do something
when 19, 20, 21
  do something
end

并且number是19,有没有办法在评估时使用块内的值进行比较?即在do something的{​​{1}}块中,有没有办法获取匹配when 19, 20, 21的任何值并将其发送到块中?

1 个答案:

答案 0 :(得分:1)

你的意思是这样做吗?

def do_something(num)
  puts num
end

case number
when 10, 11, 12
  #do some other thing
when 19, 20, 21
  do_something(number)
end

或者可能直接不使用任何方法:

case number
when 10, 11, 12
  #do some other thing
when 19, 20, 21
  puts "matched value is #{number}"
end