我想這樣做:在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