我想这样做:在case语句中,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
我想这样做:在case语句中,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?
,您可以在case
语句中使用范围:
case cost
when 1..3 then cost * 1.1
when 3..5 then cost * 1.2
是的。我不知道你为什么没有想到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
唉,你的答案是现在谷歌搜索时,会发生什么吧这个。我想,SO的成功。 – Jaime 2016-01-31 20:04:34
所以这将工作? 0.01 ... 0.09,即0.01至0.99 – Blankman 2010-11-09 03:30:08
@布兰克曼:当然。 – sepp2k 2010-11-09 03:32:25
@Blankman范围可以使用; 0.01..0.99是一个范围;所以是的,它会起作用。你应该写(和阅读)代码;你的两个问题 - 实际上只是其中的一个变种 - 会在你开始写作时回答自己! (这意味着令人鼓舞,而不是贬低。) – 2010-11-09 03:34:54