为什么fixnum没有特征类?

这个方法是返回任何对象的特征类:

class Object
  def eigenclass
    class << self; self; end
  end
end

字符串示例:

"abc".eigenclass # => #<Class:#<String:0x331df0>>

阵:

[1, 2].eigenclass # => #<Class:#<Array:0x0000000065d218>>

但是使用Fixnum:

1.eigenclass # => TypeError: can't define singleton

为什么?


正如Ruby Docs所说:

对于任何给定的整数值,实际上只有一个Fixnum对象实例,因此,例如,不能将单例方法添加到Fixnum。

BignumFloatSymbol也是如此

链接地址: http://www.djcxy.com/p/95439.html

上一篇: Why fixnum doesn't have eigenclass?

下一篇: ruby when to eigenclasses come into existence