Ebeveyn sınıfı sınıf yöntemiyle dinamik olarak örnek sınıfın örnek yöntemini oluşturmak istiyorum.Ruby'de örnek yöntemi dinamik olarak nasıl tanımlanır?
class Foo
def self.add_fizz_method &body
# ??? (This is line 3)
end
end
class Bar < Foo
end
Bar.new.fizz #=> nil
class Bar
add_fizz_method do
p "i like turtles"
end
end
Bar.new.fizz #=> "i like turtles"
Satır 3'e ne yazmalı?
neredeyse ihtiyacım olanı. Sorun şu ki - & block's self Bar örneği olmalıdır. böylece böyle bir şey yazmak mümkün olurdu: class Bar; add_fizz_method yapmak; p self.bar_name; son ; –
'un "p' i kaplumbağaları seviyorum" un altını deneyin. 'self' zaten' Bar'ın bir örneğidir. –
Btw: 'add_fizz_method' denilmeden önce' NoMethodError'ı atmak yerine 'nil' döndürmek isterseniz 'Foo' sınıfında boş bir' fizz' yöntemini bildirebilirsiniz. –