instance_eval zmiana metoda siebie w swoim bloku, np:Jak zmienić self w bloku takim jak metoda instance_eval?
class D; end
d = D.new
d.instance_eval do
puts self # print something like #<D:0x8a6d9f4>, not 'main'!
end
Jeśli zdefiniujemy metodę Nas (lub jakiekolwiek inne metody (inne niż instance_eval), który pobiera blok), gdy druk siebie, będziemy mieli „głównym ”, który różni się od instance_eval method.eg:
[1].each do |e|
puts self # print 'main'
end
jaki sposób można zdefiniować metodę (która przyjmuje blok) jak instance_eval? Z góry dzięki.
Co chcesz osiągnąć? – megas
Nie sądzę, że można robić, co się chce. Pewnie dlatego, że byłoby zbyt zagmatwane, gdybyś mógł zmienić siebie samego. –