大佬教程收集整理的这篇文章主要介绍了ruby – Class.superclass = Module,Module.class = Class?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
更新:
(在irb)
Class.superclass = Module Module.class = Class
当Class是Module underclass时,怎么可能会说Module的类是Class?它是圆形,鸡肉和鸡蛋的东西.
对象:同样的问题:Object是对象模型中的根对象.它的类怎么可以是Class,因为Class对象甚至不存在?
void Init_class_hierarchy(void) { id_attached = rb_intern("__attached__"); rb_cBasicObject = boot_defclass("BasicObject",0); /* boot_defclass is defined as boot_defclass(const char *name,VALUE super) */ rb_cObject = boot_defclass("Object",rb_cBasicObject); rb_cModule = boot_defclass("Module",rb_cObject); rb_cClass = boot_defclass("Class",rb_cModulE); /* Very important line: */ RBASIC(rb_cClass)->klass = RBASIC(rb_cModulE)->klass = RBASIC(rb_cObject)->klass = RBASIC(rb_cBasicObject)->klass = rb_cClass; }
ruby.h中的这些定义也非常重要:
#define R_CAST(st) (struct st*) #define RBASIC(obj) (R_CAST(RBasiC)(obj)) #define ROBjeCT(obj) (R_CAST(RObject)(obj)) #define RCLASS(obj) (R_CAST(RClass)(obj)) #define RMODULE(obj) RCLASS(obj)
请注意,Object,Module和Class派生自BasicObject.确实,
irb(main):001:0> BasicObject.superclass => nil
以上是大佬教程为你收集整理的ruby – Class.superclass = Module,Module.class = Class?全部内容,希望文章能够帮你解决ruby – Class.superclass = Module,Module.class = Class?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。