我试图理解 FalseClass 的方法查找链。既然 FalseClass 有 Object 作为祖先,它是否也应该有权访问 new
方法?
new
是否已从查找中排除?还是我误解了继承?
最佳答案
只有一个 FalseClass
实例; new
的值(value)是多少?
要回答您的问题,来自object.c
:
rb_cFalseClass = rb_define_class("FalseClass", rb_cObject);
rb_define_method(rb_cFalseClass, "to_s", false_to_s, 0);
rb_define_method(rb_cFalseClass, "&", false_and, 1);
rb_define_method(rb_cFalseClass, "|", false_or, 1);
rb_define_method(rb_cFalseClass, "^", false_xor, 1);
rb_undef_alloc_func(rb_cFalseClass);
rb_undef_method(CLASS_OF(rb_cFalseClass), "new");
new
明确未定义。
关于ruby - 怎么没有FalseClass.new呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14446355/