Почему singleton
методы не могут быть определены на Fixnum
, Bignum
, Float
, Symbol
объекты класса, но FalseClass
и TrueClass
может иметь?Почему методы `singleton` не могут быть определены в классах` Fixnum`, `Bignum`,` Float`, `Symbol`, но` FalseClass` и `TrueClass` могут иметь?
C:\>ruby -v
ruby 2.0.0p0 (2013-02-24) [i386-mingw32]
C:\>irb --simple-prompt
DL is deprecated, please use Fiddle
11111111111.class
#=> Bignum
class << 11111111111 ; end
#TypeError: can't define singleton
# from (irb):2
# from C:/Ruby200/bin/irb:12:in `<main>'
1111.class
#=> Fixnum
class << 1111 ; end
#TypeError: can't define singleton
# from (irb):4
# from C:/Ruby200/bin/irb:12:in `<main>'
11.11.class
#=> Float
class << 11.11 ; end
#TypeError: can't define singleton
# from (irb):6
# from C:/Ruby200/bin/irb:12:in `<main>'
:name.class
#=> Symbol
class << :name ; end
#TypeError: can't define singleton
# from (irb):8
# from C:/Ruby200/bin/irb:12:in `<main>'
Не имеете в виду «объекты экземпляра», а не «объекты класса»?BTW, объект экземпляра 'NilClass' также позволяет использовать одноэлементные объекты. –