Prefer case over if-elsif
Cette page n'est pas encore disponible en français, sa traduction est en cours.
Si vous avez des questions ou des retours sur notre projet de traduction actuel,
n'hésitez pas à nous contacter.
ID: ruby-best-practices/case-vs-if-elsif
Language: Ruby
Severity: Info
Category: Best Practices
Description
The rule “Prefer case over if-elsif” is an important guideline for writing cleaner and more readable code in Ruby. The case
statement is a multi-way branch statement, similar to if-elsif-else
, but it is more concise and clear, especially when comparing a variable to multiple values. It improves the readability of your code and makes it easier to understand and maintain.
The importance of this rule lies in the fact that complex if-elsif-else
chains can be difficult to read and understand. It can lead to confusion and increase the chances of introducing bugs in your code. On the other hand, using case
makes your code more structured and logical, which is particularly helpful when dealing with multiple conditions.
To avoid violating this rule, you should use case
instead of if-elsif
whenever you are comparing a variable to multiple different values. In the case
statement, you can specify multiple conditions in a more organized manner. If the conditions are not about the same variable or comparison, if-elsif
might still be more appropriate.
Non-Compliant Code Examples
if status == :published
do_something
elsif status == :draft || status == :pending_approval
do_option_one
else
do_option_two
end
if status == :published
do_something
elsif status == :draft
do_option_one
else
do_option_two
end
Compliant Code Examples
case status
when :published
do_something
when :draft, :pending_approval
do_option_one
else
do_option_two
end
if status == :published
do_something
elsif status != :draft
do_option_one
else
do_option_two
end
if status1 == :published
do_something
elsif status2 == :draft
do_option_one
else
do_option_two
end