动态改变方法体,领略ruby强大的动态编程能力

ruby 代码
  1. class A   
  2.   def meth   
  3.     pust "old method involked!"  
  4.     s = <<-EOF   
  5.       def meth   
  6.         puts "new method involked!"  
  7.       end  
  8.     EOF   
  9.     self.instance_eval(s)   
  10.   end  
  11. end  
  12.   
  13. a = A.new  
  14. a.meth =>"old method involded"  
  15. a.meth =>"new method involded"  
多态原来也可以这样做

你可能感兴趣的:(编程,Ruby)