2016-10-06 2 views
2

Этот метод является возвращение eigenclass любого объекта:Почему у fixnum нет eigenclass?

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 

Почему?

+0

Я думаю, что [это] (http://stackoverflow.com/questions/13962147/why-cant-singleton-methods-be-defined-on -символы-или-fixnums) может помочь вам. Пожалуйста, пройдите через это. –

ответ

1

Как Ruby Docs говорят:

Существует эффективно только один Fixnum экземпляра объекта для любого заданного целого значения, так, например, вы не можете добавить одноплодный метод к Fixnum.

То же самое верно и для Bignum, Float и Symbol

Смежные вопросы