Подтвердить что ты не робот

Поддерживается ли рубиновая поддержка в случае с выражением?

Я хочу сделать это:

case cost

    when cost between 1 and 3 then cost * 1.1
    when cost between 3 and 5 then cost * 1.2
else
    0
4b9b3361

Ответ 1

Да, поскольку Range#=== определяется как то же, что и include?, вы можете использовать диапазоны в операторах case:

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

Ответ 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