Schreiben einer switch-Anweisung in Ruby
Ähnlich wie die if
-Anweisung funktioniert, ermöglicht uns die switch
-Anweisung, die Ausführung eines Codes basierend auf einer bestimmten Bedingung zu steuern. In diesem Tutorial wird gezeigt, wie die Anweisung switch
in Ruby verwendet wird.
Unten ist die Syntax für eine switch
-Anweisung in Ruby.
case argument
when condition
# do something
else
# do something else if nothing else meets the condition
end
Wir werden uns einige allgemeine grundlegende Verwendungsmöglichkeiten ansehen und dann einige etwas komplexe Beispiele, die nicht so häufig vorkommen.
Beispielcodes:
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")
Ausgabe:
Asia
Europe
I don't know
Oben ist ein einfaches Beispiel einer Methode, die eine switch
-Anweisung verwendet, um den Kontinent eines Landes zu identifizieren. Betrachtet man das obige Beispiel, ist Folgendes erwähnenswert.
- Im Gegensatz zur
switch
-Anweisung in den meisten anderen Programmiersprachen erfordert dieswitch
-Anweisung von Ruby keinbreak
am Ende jedeswhen
. - Die
switch
-Anweisung von Ruby erlaubt es uns, mehrere Werte für jedeswhen
anzugeben, sodass wir ein Ergebnis zurückgeben können, wenn unsere Variable mit einem der Werte übereinstimmt. Ein Beispiel ist unten gezeigt.
Beispielcodes:
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")
Ausgabe:
Asia
Europe
Europe
Rubys switch
-Anweisung unter der Haube verwendet den ===
-Operator, um den Vergleich zwischen der case
-Variablen und den gelieferten Werten durchzuführen, d. h. value === argument
. Infolgedessen ermöglicht uns Ruby switch
, cleverere Vergleiche anzustellen.
Match Ranges
in Ruby switch
In diesem Beispiel prüfen wir, ob die angegebene case
-Variable in einem der angegebenen Ranges enthalten ist.
Beispielcodes:
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)
Ausgabe:
Falls between 1 & 5
Falls between 6 & 10
Match Regex
in Ruby switch
Wir können auch reguläre Ausdrücke mit der Variable case
abgleichen, und das wird im folgenden Beispiel gezeigt.
Beispielcodes:
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")
Ausgabe:
ends with 'ary'
ends with 'ber'
Match Proc
in Ruby switch
Ein Ruby Proc
kapselt einen Codeblock, der in einer Variablen gespeichert oder herumgereicht werden kann. Weitere Erklärungen zu Ruby Proc
finden Sie hier. Das folgende Beispiel zeigt, wie ein Ruby-Proc
in einer switch
-Anweisung verwendet werden kann.
Beispielcodes:
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)
Ausgabe:
It's odd
It's even