Hatena::Grouprubyist

Going My Ruby Way このページをアンテナに追加 RSSフィード

Ruby ロゴ (C) Ruby Association LLC

2010年12月02日(木)

特異クラス

| 19:10 | 特異クラス - Going My Ruby Way を含むブックマーク はてなブックマーク - 特異クラス - Going My Ruby Way 特異クラス - Going My Ruby Way のブックマークコメント

c = class << obj = Object.new
  self
end

p c                    # => #<Class:#<Object:0xb76c2f34>>
p c.class              # => Class
p c.name               # => ""
p c.superclass         # => #<Class:Object>
p c.superclass.name    # => ""
p c.ancestors          # => [Object, PP::ObjectMixin, Kernel]

p obj === c            # => false
p c === obj            # => true
p obj.kind_of? c       # => true
p obj.instance_of? c   # => false

c.new                  # =>TypeError: can't create instance of virtual class