ruby - 怎么没有FalseClass.new呢?

标签 ruby

我试图理解 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/

相关文章:

ruby-on-rails - RSpec:设置请求 header

ruby - 在 ubuntu-12.04 -x86_64 上安装 ruby​​ 2.1.1 出现错误(3)

ruby - 找出Ruby中歌曲的标题和歌手

一些联合查询的sql语句-rails

ruby - 动态设置 Ruby 对象的属性

ruby - 将 nil 强制转换为数字

ruby - 这是从数组哈希中获取公共(public)元素的最佳方法吗?

ruby-on-rails - ruby 根据不同键的相同值删除散列的散列

c# - 我可以在 Ruby/Java/C# 中创建这样的对象吗?

ruby-on-rails - rails 目前在重启后没有安装