ruby研究10
494 ワード
what's different between MyClass.instance_eval() and MyClass.define_method()
MyClass.instance_eval()はクラスメソッドを定義します.
MyClass.define_method()はインスタンスメソッドを定義します.
class AAA
end
AAA.instance_eval do
def aaa
puts 'aaaa'
end
end
AAA.send :define_method, :aaa do
puts 'new aaa'
end
AAA.aaa # => aaa
a = AAA.new
a.aaa # => new aaa
MyClass.instance_eval()はクラスメソッドを定義します.
MyClass.define_method()はインスタンスメソッドを定義します.