そのブロック内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
私はあなたがしたいことをすることは可能だとは思わない。おそらく、あなた自身を変えることができれば、それはあまりにも混乱するだろうから。 –