class Temp1
def add(s)
match = 'test'
self.class.class_eval do
define_method(s) do
puts match
end
end
#match ='haha'
end
end
正如我所想的那样,“匹配”是一个局部变量,所以我不明白它如何从另一种方法中看到它,加上如果取消注释#match =“哈哈”,方法会以某种方式打印“哈哈”。有人可以解释一下吗?
此外,我在这里看不出使用 class_eval 或 instance_eval 之间的区别,似乎它做同样的事情。
而且,最后但并非最不重要的是,我可以在这里使用 define_method 创建类方法吗?所以我可以把它称为 Temp1.something 而不是 Temp1.new.something?