Avoid explicit use of the case equality operator
このページは日本語には対応しておりません。随時翻訳に取り組んでいます。
翻訳に関してご質問やご意見ございましたら、
お気軽にご連絡ください。
ID: ruby-best-practices/no-case-equality
Language: Ruby
Severity: Notice
Category: Best Practices
Description
The case equality operator ===
in Ruby is used to test equality within a when
clause of a case
statement. However, it’s often considered a bad practice to use this operator explicitly outside of a case
statement. This is because its behavior can be quite unpredictable and confusing, as it behaves differently for different classes.
The use of the ===
operator can lead to code that is harder to read and understand. It’s also potentially prone to bugs, as it might not behave as expected with certain objects. Therefore, it’s recommended to avoid the explicit use of the ===
operator.
Instead of using the ===
operator, it’s better to use more explicit methods that clearly indicate what you’re trying to achieve. For example, if you’re trying to check if a string matches a regular expression, you can use the match?
method. If you want to check if an object is an instance of a certain class, you can use the is_a?
method. These methods are much more clear and straightforward, leading to better, more maintainable code.
Non-Compliant Code Examples
/something/ === some_string
Array === something
Compliant Code Examples
some_string.match?(/something/)
something.is_a?(Array)