Ответ 1
Да, поскольку Range#===
определяется как то же, что и include?
, вы можете использовать диапазоны в операторах case
:
case cost
when 1..3 then cost * 1.1
when 3..5 then cost * 1.2
Я хочу сделать это:
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