Ruby中的类和类型方法有什么区别?我注意到这种类型可以找到某些类的类型而不是其他类。
答案 0 :(得分:48)
关键区别在于Object#type
已被弃用。从RDoc for Object#type:
Object#class的不推荐使用的同义词。
这就是您应该使用Object#class
:
现在返回obj的类 优先于Object#type,作为 Ruby中的对象类型只是松散的 绑定到该对象的类。这个 必须始终使用a调用方法 显式接收器,因为类也是一个 Ruby中的保留字。
实际上,在大多数情况下,您可能希望使用Object#respond_to?
而不是检查对象的类。
答案 1 :(得分:15)
#type
是#class
的同义词,但它在ruby 1.8中已弃用,显然已从ruby 1.9中删除。只需在任何地方使用#class
。
# 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