chcę to zrobić:Czy ruby obsługują zakresy w przypadku?
case cost
when cost between 1 and 3 then cost * 1.1
when cost between 3 and 5 then cost * 1.2
else
0
chcę to zrobić:Czy ruby obsługują zakresy w przypadku?
case cost
when cost between 1 and 3 then cost * 1.1
when cost between 3 and 5 then cost * 1.2
else
0
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
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
Niestety, odpowiedź jest teraz to, co pojawia się, gdy Googling to. Sukces SO, jak przypuszczam. – Jaime
, więc to zadziała? 0,01.2,0.99 to znaczy 0,01 do 0,99? – Blankman
@Blankman: Pewnie. – sepp2k
@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.) –