Was ist der Unterschied zwischen einer Klasse und dem Singleton dieser Klasse in Ruby?

Okay, ich versuche, in Ruby Metaprogramme zu schreiben, und bin ein bisschen verwirrt. Nach mehreren Artikeln, die ich gelesen habe (wiedieses), um Ruby-Klassen dynamisch Klassenmethoden hinzuzufügen, müssen Sie die Singleton-Klasse der Klasse verwenden:

class Klass
end

class << Klass
  self.define_method(:foo) { return "foo" }
end

Warum ist das so und wie unterscheidet sich das davon?

class Klass
  self.define_method(:foo) { return "foo" }
end

(Sorry, wenn diese Frage falsche Annahmen enthält. Wie gesagt, ich bin ein bisschen verwirrt.)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage