В чем разница между классом и синглтоном этого класса в Ruby?
Итак, я пытаюсь выполнить метапрограммирование в Ruby, и я немного запутался. Согласно нескольким статьям, которые я прочитал (например,этот), чтобы динамически добавлять методы класса в классы Ruby, вы должны использовать синглтон-класс класса:
class Klass
end
class << Klass
self.define_method(:foo) { return "foo" }
end
Почему это, и как это отличается от этого?
class Klass
self.define_method(:foo) { return "foo" }
end
(Извините, если этот вопрос содержит ложные предположения. Как я уже сказал, я немного запутался.)