Bird
0
0

Why might using obj.class == SomeClass be less reliable than obj.is_a?(SomeClass) for type checking in Ruby?

hard📝 Conceptual Q10 of 15
Ruby - Variables and Data Types
Why might using obj.class == SomeClass be less reliable than obj.is_a?(SomeClass) for type checking in Ruby?
A<code>.class ==</code> checks only exact class, ignoring subclasses
B<code>.is_a?</code> only checks for exact class, ignoring subclasses
C<code>.class ==</code> returns true for subclasses too
D<code>.is_a?</code> raises error if object is nil
Step-by-Step Solution
Solution:
  1. Step 1: Understand behavior of .class ==

    .class == SomeClass returns true only if object's class exactly matches SomeClass, not subclasses.
  2. Step 2: Understand behavior of .is_a?

    .is_a?(SomeClass) returns true if object is instance of SomeClass or any subclass.
  3. Final Answer:

    .class == checks only exact class, ignoring subclasses -> Option A
  4. Quick Check:

    Use .is_a? for subclass-inclusive checks [OK]
Quick Trick: Use .is_a? to include subclasses in type checks [OK]
Common Mistakes:
  • Thinking .class == includes subclasses
  • Believing .is_a? excludes subclasses
  • Assuming .is_a? errors on nil

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More Ruby Quizzes