Écrire une instruction Switch en Ruby
-
Faites correspondre les
gammes
dans leswitch
Ruby -
Faites correspondre
Regex
dans Rubyswitch
-
Associez
Proc
à Rubyswitch
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’instructionswitch
de Ruby ne nécessite pas debreak
à la fin de chaquewhen
. - L’instruction
switch
de Ruby nous permet de spécifier plusieurs valeurs pour chaquewhen
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