Как использовать switch в Ruby?
В языке Ruby (и в Perl) для реализации функционала switch (многопутевого ветвления) используется выражение case. Обратите внимание, что case в Ruby позволяет делать немного больше в отличии от других языков программирования. Главным преимуществом является то, что оно позволяет не только сравнивать на равенство, но и дает возможность использовать различные условия (регулярные выражения и диапазоны вполне можно использовать в качестве условия).
В качестве примера работы case рассмотрим следующую программу:
В качестве примера работы case рассмотрим следующую программу:
something = 0 case something when 1 puts "Твой ответ 1" when 2..3 puts "Твой ответ 2 или 3" when "mew" puts "Mew-mew :)" else puts "Введенное значение отлично от 1,2,3 и 'mew'" end
Запуск этого куска кода приведет нас к последнему результату, потому что все выше перечисленные ветви не равняются something:
$ ruby case.rb Введенное значение отлично от 1,2,3 и 'mew'
Можно экспериментировать и менять значение something на что-то другое, а также изменять условия попадания в наши ветвления. Программа будет завершена, когда она зайдет внутрь определенного условия и выполнит код находящийся внутри.
Немного о структуре выражения case:
case - принимает значение переменной, с которой нужно продолжить работу;
when - принимает условие и код внутри себя. код выполняется, когда условие было удовлетворено;
else - выполняется в случаях, когда никакое из условий выше не было удовлетворено;
Можно сказать, что выражение case очень полезно если мы не хотим писать громоздкие if/else условия. Удобен для проверки на равенство, а также полезен для работы с диапазонами, регулярными выражениями и различными условиями.