В приведенном ниже коде я не понимаю, почему классы возвращают свои имена.Путаница с `include` внутри определения класса
module Show
def show_string
p "hi"
end
end
class Foo
@x=12
include Show
end
# => Foo
class Test
include Show
end
# => Test
Чтобы увидеть причину, я вставил object_id
. И теперь он показывает идентификатор объекта.
class Foo
@x=12
(include Show).object_id
end
# => 10681980
class Too
@x=12
(include Show).object_id.inspect
end
# => "10648020"
Я не создавал объект на Foo.new
и Too.new
. Создаются ли такие объекты внутри определений классов?
Спасибо за разъяснения. Но означает ли это, когда мы создаем новые определения классов, 'object_id' также создаются из них или это имеет место только с инструкцией' include'? –
Любой объект имеет идентификатор объекта с самого начала. Класс - это объект. – sawa
Да! Я понял, что сейчас ... Я счастлив ... ВАМ мой SIR :) вот моя попытка - 'класс Foo конец # => nil Foo.object_id # => 9189204' –