2
我試圖實現一個類,允許其子類保存方法塊以便稍後執行它們。它的工作,但似乎我採取了錯誤的方式。看看這個:從塊內調用實例方法
class SuperKlass
def self.exec_later(&block)
@@block_for_later = block
end
def exec_now
return unless @@block_for_later
@@block_for_later.call
end
end
class ChildKlass < SuperKlass
exec_later do
child_method
end
def child_method
puts "Child method called"
end
end
test_klass = ChildKlass.new
test_klass.exec_now
如果我試圖執行這段代碼,在一個方法缺失錯誤塊結果調用child_method
。有人知道我做錯了什麼,以及添加這種功能的正確方法是什麼?
大,這個工程。雖然我知道instance_eval,但我不知道它可以用來用&符執行一個塊。非常感謝您的回答! – dhoelzgen 2011-05-01 14:29:17
我很高興能夠幫助你,因爲我現在正在學習元編程,並且我可以使用一些成功的新知識。 :)關於使用&符號,我學到了很多方法/ proc調用細節[here](http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Method_Calls#The_ampersand_.28.26.29)。我希望它對你也有用。 – 2011-05-01 14:51:47
這個鏈接真的對我很有幫助,再次感謝:)我發現另一個鏈接[這裏](http://www.ruby-forum.com/topic/54096#32642)這可能可能有幫助,關於傳遞參數,如果一個塊這樣調用。 – dhoelzgen 2011-05-01 17:58:51