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没有任何已知的