情况说明中的ruby支持范围?

我想做这个:

case cost when cost between 1 and 3 then cost * 1.1 when cost between 3 and 5 then cost * 1.2 else 0 

是的,因为Range#===被定义为与include?相同include? ,可以在case语句中使用范围:

 case cost when 1..3 then cost * 1.1 when 3..5 then cost * 1.2 

是。 我不知道你为什么没有想到谷歌或者只是尝试它(这是ruby,海事组织的美丽:事情通常以你认为他们应该的方式工作),但我会回答相同的: http: //ilikestuffblog.com/2008/04/15/how-to-write-case-switch-statements-in-ruby/

特别:

 case expression when min..max statements else statements end