2种使用class_eval动态定义方法的格式_Ruby_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > Ruby > 2种使用class_eval动态定义方法的格式

2种使用class_eval动态定义方法的格式

 2012/12/16 17:21:36  夜鸣猪  程序员俱乐部  我要评论(0)
  • 摘要:classMyClassdefinitialize(dynamic_methods)@arr=Array.new(dynamic_methods)@arr.each{|m|self.class.class_evaldodefine_method(m)do|*value|putsvalueendend}endendtmp=MyClass.new%w(method1method2method3)tmp.method1'abc'classMyClassdefinitialize
  • 标签:方法 使用
class MyClass
  def initialize(dynamic_methods)
    @arr = Array.new(dynamic_methods)
    @arr.each{|m|
      self.class.class_eval do
        define_method(m) do |*value|
          puts value
        end
      end
    }
  end
end

tmp = MyClass.new %w(method1 method2 method3)


tmp.method1 'abc'



class MyClass
  def initialize(dynamic_methods)
    @arr = Array.new(dynamic_methods)
    @arr.each do |method|
      self.class.class_eval <<-EVAL
        def #{method}(*arguments)
          puts arguments
        end
      EVAL
    end
  end
end

tmp = MyClass.new %w(method1 method2 method3)
发表评论
用户名: 匿名