2010-11-09 8 views

Odpowiedz

56

Tak, ponieważ Range#=== określa się tak samo jak include?, można użyć zakresów w case oświadczenia:

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

, więc to zadziała? 0,01.2,0.99 to znaczy 0,01 do 0,99? – Blankman

+0

@Blankman: Pewnie. – sepp2k

+0

@Blankman Zakresy mogą być używane; 0,01.,0.99 to zakres; więc tak, to zadziała. Powinieneś pisać (i czytać) kod; oba pytania - tak naprawdę odmiana tego samego - odpowiedzą same, gdy zaczniesz pisać! (To ma być zachęcające, nie lekceważące.) –

4

Tak. Nie wiem, dlaczego nie pomyślałeś o tym w Google lub po prostu wypróbowałeś (co jest pięknem Ruby, IMO: rzeczy zwykle działają tak, jak powinno), ale odpowiem tak samo: http://ilikestuffblog.com/2008/04/15/how-to-write-case-switch-statements-in-ruby/

Konkretnie:

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

Niestety, odpowiedź jest teraz to, co pojawia się, gdy Googling to. Sukces SO, jak przypuszczam. – Jaime