instance_eval的方法改變自身在其塊,如:如何在像instance_eval方法這樣的塊中改變自我嗎?
class D; end
d = D.new
d.instance_eval do
puts self # print something like #<D:0x8a6d9f4>, not 'main'!
end
如果我們定義(這需要一個塊或任何其他方法(比instance_eval的除外)),在打印時的自我,我們將得到的主要的方法我們自己」,這是從instance_eval的method.eg不同:
[1].each do |e|
puts self # print 'main'
end
我怎樣才能限定的方法(其需要一個塊)等instance_eval的? 在此先感謝。
做什麼你想達到什麼目的? – megas 2012-02-27 06:54:34
我不認爲有可能做你想做的事。可能是因爲如果你可以自己改變自己,那太過撲朔迷離了。 – 2012-02-27 21:31:13