1
Ich möchte der Klasse einige allgemeine Funktionen hinzufügen, die aus Instanzmethoden und Klassenmethoden bestehen. Ich habe versucht, dies wie unten zu tun, aber es hat nicht funktioniert. Was ist der richtige Weg, um dies zu erreichen?Wie umschließen Sie Instanz- und Klassenmethoden in Ruby?
module A
def foo
puts "foo!"
end
end
module B
def wow
puts "wow!"
end
end
module C
include A # instance methods
extend B # class methods
end
class D
include C
end
D.new.foo
D.wow
Dank! Was bedeutet "self" hier? Was ist, wenn ich es weglasse? –
self macht eine "modul method" .. ähnlich einer "class method" Es funktioniert nicht, wenn Sie es entfernen. –
@Misha Wenn Sie es weglassen, wird es brechen. 'def self.xxx' definiert eine Methode für die Klasse/das Modul selbst und nicht als eine Methode, die von Instanzen geerbt wird. – Phrogz