Как использовать условную конструкцию switch case в ruby

Аватар пользователя Nikolai Gagarinov
Nikolai Gagarinov
10 января 2022

В Ruby switch case может использоваться следующим образом

condition = 1

case condition
when 1
  # first case
  pp 'first'
when 2
  # second case
  pp 'second'
else
  # default case
  pp 'default'
end

Т.е. в отличии от большинства языков, здесь используется не switch/case/default, а case/when/else. В case передаётся условие и оно разруливается по веткам внутри when. Если ни одно из значений не подошло, то выполнится else, если он есть.

Также в case/when можно не писать return, если конструкция должна что-то вернуть из функции

def describe_number(number)
  case number
  when 1
    'one'
  when 2
    'two'
  when 3
    'three'
  else
    'unknown'
  end
end

pp describe_number(2) #=> "two"
pp describe_number(5) #=> "unknown"
0 0
Пройдите курс по программированию бесплатно