Écrire une instruction Switch en Ruby

Nurudeen Ibrahim 30 janvier 2023
  1. Faites correspondre les gammes dans le switch Ruby
  2. Faites correspondre Regex dans Ruby switch
  3. Associez Proc à Ruby switch
Écrire une instruction Switch en Ruby

Semblable au fonctionnement de l’instruction if, l’instruction switch nous permet de contrôler l’exécution d’un code en fonction d’une condition spécifique. Ce tutoriel examinera comment l’instruction switch est utilisée dans Ruby.

Vous trouverez ci-dessous la syntaxe d’une instruction switch dans Ruby.

case argument
when condition
  # do something
else
  # do something else if nothing else meets the condition
end

Nous examinerons quelques manières de base courantes de l’utiliser, puis quelques exemples quelque peu complexes qui ne sont pas si courants.

Exemples de codes :

def continent_identifier(country)
  case country
  when "Nigeria"
    puts "Africa"
  when "Netherlands"
    puts "Europe"
  when "India"
    puts "Asia"
  else
    puts "I don't know"
  end
end

continent_identifier("India")
continent_identifier("Netherlands")
continent_identifier("Germany")

Production :

Asia
Europe
I don't know

Ci-dessus est un exemple de base d’une méthode qui utilise une déclaration switch pour identifier le continent d’un pays. En regardant l’exemple ci-dessus, les éléments suivants méritent d’être notés.

  • Contrairement à l’instruction switch dans la plupart des autres langages de programmation, l’instruction switch de Ruby ne nécessite pas de break à la fin de chaque when.
  • L’instruction switch de Ruby nous permet de spécifier plusieurs valeurs pour chaque when afin que nous puissions renvoyer un résultat si notre variable correspond à l’une des valeurs. Un exemple est illustré ci-dessous.

Exemples de codes :

def continent_identifier(country)
  case country
  when "Nigeria"
    puts "Africa"
  when "Netherlands", "Germany"
    puts "Europe"
  when "India"
    puts "Asia"
  else
    puts "I don't know"
  end
end

continent_identifier("India")
continent_identifier("Netherlands")
continent_identifier("Germany")

Production :

Asia
Europe
Europe

L’instruction switch de Ruby sous le capot utilise l’opérateur === pour faire la comparaison entre la variable case et les valeurs fournies, c’est-à-dire argument valeur ===. Du coup, Ruby switch nous permet de faire des comparaisons plus intelligentes.

Faites correspondre les gammes dans le switch Ruby

Dans cet exemple, nous vérifions si la variable case fournie est incluse dans l’une des plages spécifiées.

Exemples de codes :

def check_number(n)
  case n
  when 1..5
    puts "Falls between 1 & 5"
  when 6..10
    puts "Falls between 6 & 10"
  end
end

check_number(3)
check_number(7)

Production :

Falls between 1 & 5
Falls between 6 & 10

Faites correspondre Regex dans Ruby switch

Nous pouvons également associer des expressions régulières à la variable case, comme le montre l’exemple ci-dessous.

Exemples de codes :

def month_indentifier(month)
  case month
  when /ber$/
    puts "ends with 'ber'"
  when /ary$/
    puts "ends with 'ary'"
  end
end

month_indentifier("February")
month_indentifier("November")

Production :

ends with 'ary'
ends with 'ber'

Associez Proc à Ruby switch

Un Ruby Proc encapsule un bloc de code qui peut être stocké dans une variable ou transmis. Vous pouvez vérifier ici pour plus d’explications sur Ruby Proc. L’exemple suivant montre comment utiliser un Ruby Proc dans une instruction switch.

Exemples de codes :

def check_number(number)
  case number
  when -> (n) { n.even? }
    puts "It's even"
  when -> (n) { n.odd? }
    puts "It's odd"
  end
end

check_number(3)
check_number(6)

Production :

It's odd
It's even