Ruby中的class()与type()

Ruby中的类和types方法有什么区别? 我注意到这个types可以find某些类的types,而不是其他类。

关键的区别是不推荐使用Object#type 。 从对象#的RDoc中input:

已弃用的Object#class的同义词。

这就是为什么你应该使用Object#class

返回obj的类,现在比Object#types更喜欢,因为Ruby中的对象types只与该对象的类松散地绑定在一起。 这个方法必须总是用一个明确的接收方来调用,因为类也是Ruby中的一个保留字。

在现实中,你可能想使用Object#respond_to? 而不是在大多数情况下检查对象的类。

#type#class的同义词,但是它在ruby 1.8中已经被弃用了,显然已经从ruby 1.9中消失了。 只要在任何地方使用#class


 #ruby1.8

 $ ri Object#type
 -------------------------------------------------- ----------对象#types
      obj.type =>类
 -------------------------------------------------- ----------------------
     已弃用的Object#class的同义词。


 #对于ruby1.9

 $ ri1.9对象#types
对象#types没有任何已知的