ruby研究10

494 ワード

what's different between MyClass.instance_eval() and 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()はインスタンスメソッドを定義します.