2010-11-09 80 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

相關問題