class Class-экземпляр против методов класса
Как это работает? Когда выполняется следующее "hi from class"
печатается дважды. Что происходит внутри ruby, чтобы заставить это вести себя так? Разве я на самом деле не делаю метод экземпляра для class
class Class
def foo
puts "hi from class"
end
end
Class.foo
x = Class.new
x.foo
1 ответов
Я не знаю, знаете ли вы об этом, но когда вы делаете class Class ... end
вы создаете новый класс с именем Class
, вы открываете существующий класс Class
.
С Class
является классом, что все классы являются экземплярами, что означает, что Class
- это экземпляр себе. И из-за этого вы можете вызвать методы экземпляра Class
непосредственно на Class
так же, как и в любом другом классе.