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」はローカル変数なので、別のメソッドからどのように表示されるのかわかりません。また、#match =「haha」のコメントを外すと、メソッドは「haha」を何らかの方法で出力します。誰かがそれを説明できますか?
また、ここでは class_eval または instance_eval の使用に違いは見られませんが、同じことをしているようです。
最後になりましたが、ここで define_method を使用してクラス メソッドを作成できますか? Temp1.new.something ではなく、Temp1.something のように呼び出すことができますか?