2010-11-09 38 views

回答

56

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

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

所以这将工作? 0.01 ... 0.09,即0.01至0.99 – Blankman 2010-11-09 03:30:08

+0

@布兰克曼:当然。 – sepp2k 2010-11-09 03:32:25

+0

@Blankman范围可以使用; 0.01..0.99是一个范围;所以是的,它会起作用。你应该写(和阅读)代码;你的两个问题 - 实际上只是其中的一个变种 - 会在你开始写作时回答自己! (这意味着令人鼓舞,而不是贬低。) – 2010-11-09 03:34:54

4

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

具体做法是:

case expression 
when min..max 
    statements 
else 
    statements 
end 
+1

唉,你的答案是现在谷歌搜索时,会发生什么吧这个。我想,SO的成功。 – Jaime 2016-01-31 20:04:34

相关问题