class() vs. type() in Ruby
Solution 1
The 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.
Solution 2
#type
is a synonym for #class
, but it's deprecated in ruby 1.8, and apparently gone from ruby 1.9. Just use #class
everywhere.
# For ruby 1.8 $ ri Object#type ------------------------------------------------------------ Object#type obj.type => class ------------------------------------------------------------------------ Deprecated synonym for Object#class. # For ruby 1.9 $ ri1.9 Object#type Nothing known about Object#type
![gitguddoge](https://i.stack.imgur.com/qcVwK.jpg?s=256&g=1)
gitguddoge
Updated on May 07, 2020Comments
-
gitguddoge about 4 years
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.