instance_eval cambio de método de auto en su bloque, por ejemplo:¿Cómo cambiar auto en un bloque como lo hace el método instance_eval?
class D; end
d = D.new
d.instance_eval do
puts self # print something like #<D:0x8a6d9f4>, not 'main'!
end
Si definimos un método mismos (o cualquier otro método (que no sea instance_eval) que tiene un bloque), cuando la auto impresión, vamos a conseguir 'principal ', que es diferente de method.eg instance_eval:
[1].each do |e|
puts self # print 'main'
end
¿Cómo puedo definir un método (que tiene un bloque) como instance_eval? Gracias de antemano.
¿Qué hacer que quiere lograr? – megas
No creo que sea posible hacer lo que quieras. Probablemente porque sería demasiado confuso si pudieras cambiarte a ti mismo. –