有没有办法知道 'when' 在 Ruby 中的多个案例选择中哪个值是正确的

Is there a way to know which 'when' value was correct in a multiple case choice in Ruby

代码:

case x
when 0
    puts "You shall not pass!"
    do_stuff
when 1..10
    puts THE_VALUE_THAT TRIGGERED_THIS_BRANCH
    do_other_stuff(THIS_VALUE)
end

正如您从这段代码中可以理解的那样,我想知道是否有办法检索等于 x 的 'when' 的值。我想详细说明问题不是关于如何使这个特定代码工作(例如使用 if),它纯粹是为了知识目的。我查看了 Ruby 文档,但没有找到实现它的方法。

也许我在这里过于简单化了,但我认为你可以这样做:

case x
when 0
   puts "You shall not pass!"
   do_stuff
when 1..10
   puts x
   do_other_stuff(x)
end
case x
when 0
    puts "You shall not pass!"
    do_stuff
when 1..10
    puts x
    do_other_stuff(THIS_VALUE)
end

x 是触发分支的值,您可以简单地使用变量 x。