What's the difference between the class and type methods in Ruby? I've noticed that type works to find the type of some classes but not others.
question from:https://stackoverflow.com/questions/831380/class-vs-type-in-rubyWhat's the difference between the class and type methods in Ruby? I've noticed that type works to find the type of some classes but not others.
question from:https://stackoverflow.com/questions/831380/class-vs-type-in-rubyThe key difference is that Object#type
is deprecated. From the RDoc for Object#type:
Deprecated synonym for Object#class.
Here's why you should use Object#class
:
Returns the class of obj, now preferred over Object#type, as an object‘s type in Ruby is only loosely tied to that object‘s class. This method must always be called with an explicit receiver, as class is also a reserved word in Ruby.
In reality, you probably want to use Object#respond_to?
instead of checking for the class of an object in most cases.