Как использовать условную конструкцию 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

Есть что добавить? Зарегистрируйтесь

или войдите в аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Курсы по программированию в Хекслете

Backend-разработка

Разработка серверной части сайтов и веб-приложений

Frontend-разработка

Разработка внешнего интерфейса сайтов и веб-приложений и верстка

Создание сайтов

Разработка сайтов и веб-приложений на JS, Python, Java, PHP и Ruby on Rails

Тестирование

Ручное тестирование и автоматизированное тестирование на JS, Python, Java и PHP

Аналитика данных

Сбор, анализ и интерпретация данных на Python

Интенсивные курсы

Интенсивное обучение для продолжающих

DevOps

Автоматизация настройки локального окружения и серверов, развертывания и деплоя

Веб-разработка

Разработка, верстка и деплой сайтов и веб-приложений, трудоустройство для разработчиков

Математика для программистов

Обучение разделам математики, которые будут полезны при изучении программирования

JavaScript

Разработка сайтов и веб-приложений и автоматизированное тестирование на JS

Python

Веб-разработка, автоматическое тестирование и аналитика данных на Python

Java

Веб-разработка и автоматическое тестирование на Java

PHP

Веб-разработка и автоматическое тестирование на PHP

Ruby

Разработка сайтов и веб-приложений на Ruby on Rails

Go

Курсы по веб-разработке на языке Go

HTML

Современная верстка с помощью HTML и CSS

SQL

Проектирование базы данных, выполнение SQL-запросов и изучение реляционных СУБД

Git

Система управления версиями Git, регулярные выражения и основы командой строки