我觉得Object是每个人的祖先,包括Class。 所以我认为它应该是Class.class == Object。 我感到有点困惑和扭曲为什么在Ruby中使用Object.class ==类?
5
A
回答
10
类返回类(#type)而不是祖先。对象的类是Class。班级是班级。类是一个对象。广告真相:我从来没有学过Ruby,但Object-Class关系有是30年前提出的Smalltalk。
5
这是它在Ruby 1.9的方式:
Class.class = Class
Class.superclass = Module
Module.class = class
Module.superclass = Object
Object.class = Class
Object.superclass = BasicObject
BasicObject.class = Class
BasicObject.superclass = nil
6
Object
的类是Class
(因为Object
本身是一个类),以及Object
是Class
的祖先。
有一个循环引用,它非常复杂。我个人的建议,如果你真的不需要玩,不要去那里。
9
类,对象,模块和所有其它类是实例一个类类:)
Class.class == Module.class == Object.class == Hash.class ==类
类也是一个对象(如在系统中的任何其他对象),但它不是对象的直接例如,它是一个的实例衍生类(类在这种情况下)
Class.superclass.superclass ==对象(模块在中间)
对象本身也是一类。 Object.class ==类
类,模块和对象具有循环依赖关系,因为它们在OO模型的核心中。
Object.class.superclass.superclass ==对象
=> parent (.superclass)
-> instance-of (.class)
alt text http://www.grabup.com/uploads/b10b2ffa9976953e3d6f88e6fcbf6f28.png?direct
相关问题
- 1. 在ruby中object.class ==和object.is_a有什么区别?
- 2. 为什么Class.getSuperclass()有时会返回Object.class?
- 3. 在Java中,object.class是做什么的?
- 4. 为什么Object.class不能捕获所有?
- 5. 为什么在使用Ruby
- 6. 为什么ArrayList.contains(Object.class)不能用于查找实例类型?
- 7. 为什么在ruby中使用委托
- 8. 如何使Object.class类型通用
- 9. 为什么没有reflections.getSubTypesOf(Object.class)查找枚举?
- 10. 为什么Ruby类模型中使用@变量?
- 11. /ell/==='Hello'在Ruby中为true。为什么?
- 12. 为什么我们在ruby中使用@@作为类变量的前缀?
- 13. 为什么在Ruby中使用类变量被认为是“代码味道”?
- 14. 基于Object.class创建类
- 15. 为什么在ruby中使用class << self?
- 16. 在Ruby中,什么是类AboutClasses?
- 17. 什么是PI的类型,在Ruby中
- 18. 在Ruby中使用Integer类型比Numeric有什么优势?
- 19. 什么时候在Ruby中使用Singleton类是明智的?
- 20. 为什么Ruby使用'=>'符号?
- 21. 为什么使用Ruby的DBM库
- 22. object.class在Ruby中返回意外的结果
- 23. Ruby,为什么FeedNormalizer的使用会破坏分类器:: CRM114
- 24. 为什么Ruby的stdlib有DateTime类?
- 25. 为什么使用类?
- 26. 为什么人们有时在非Ruby类中使用实例变量?
- 27. 为什么回调在Ruby on Rails中使用符号
- 28. 何时以及为什么要在Ruby中使用Loop构造
- 29. 为什么在Ruby中使用注入时会出现'typeerror'?
- 30. 为什么在Ruby中不使用“gsub”删除管道?
元类在Ruby中不同的工作:他们得到注入方法查找链,从而Ruby没有两个平行的层次结构类和元类,但是,正如你所说,基础是相同的。 – 2009-08-03 00:38:05
@Jorg:谢谢。只要我完成我目前的项目,我会拿起铁轨和红宝石,我听到太多的赞美,我很感兴趣:) – 2009-08-03 01:34:37