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 =」哈哈',方法會打印'哈哈'莫名其妙。有人可以解釋嗎?如何define_method使用變量初始化之外它
此外,我沒有看到使用class_eval或instance_eval之間的區別,似乎它做同樣的事情。
最後但並非最不重要的是,我可以使用define_method在這裏創建類方法嗎?所以我可以稱它爲Temp1.something而不是Temp1.new.something?