有没有办法知道 '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。
代码:
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。