这听起来很奇怪,但我想做这样的事情:
case cool_hash
when cool_hash[:target] == "bullseye" then do_something_awesome
when cool_hash[:target] == "2 pointer" then do_something_less_awesome
when cool_hash[:crazy_option] == true then unleash_the_crazy_stuff
else raise "Hell"
end
理想情况下,我什至不需要再次引用 has,因为这就是 case 语句的内容。如果我只想使用一个选项,那么我会“case cool_hash[:that_option]”,但我想使用任意数量的选项。另外,我知道 Ruby 中的 case 语句只评估第一个真正的条件块,有没有办法覆盖它来评估每个真正的块,除非有中断?