NilClass,TrueClass和FalseClass各有一个实例,即nil,true和false,它们是常量,拥有这些类的目的是什么?为什么它们不能成为Object类的实例,并且所有相关
方法都被简单地定义为nil,true和false的单例
方法?一个相关的问题是,为什么这些没有被定义为常数?
它始终坚持“一切都是对象”和“对象由它们所属的类来专门化”的想法.
nil,true和false都是对象(因此是带有方法的类的实例化).它们是1)相应类型的唯一居民并且是2)不可变对象的强制允许实现优化 – 并且实际上,这不是一个零吗?
没有专门化值的有用错误消息:x.class“just works”.
> > nil.foo
> => #<NoMethodError: undefined method `foo' for nil:NilClass>
我很高兴它说NilClass 原文链接:https://www.f2er.com/ruby/265477.html