加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

动态添加ruby类方法或实例方法

发布时间:2020-12-16 21:36:14 所属栏目:百科 来源:网络整理
导读:我对 Ruby很新,所以还在学习.我正在研究如何动态添加方法,我成功地创建了实例方法,但是在创建类方法时并不成功. 这是我如何生成实例方法: class B def before_method puts "before method" end def self.run(method) send :define_method,method do before_
我对 Ruby很新,所以还在学习.我正在研究如何动态添加方法,我成功地创建了实例方法,但是在创建类方法时并不成功.

这是我如何生成实例方法:

class B
    def before_method
      puts "before method"
    end

    def self.run(method)
        send :define_method,method do
          before_method
          puts "method #{method}"
        end
    end
  end

  class A < B
    run :m
    run :n
  end

关于创建静态方法的最佳方法的任何想法?

我的最后一个任务是寻找为类方法创建“之前”和“之后”任务的最佳方法.

解决方法

这里重新使用类方法:
class B
   def self.before_method
     puts "before method"
   end

  def self.run(method)
    define_singleton_method(method) do
      before_method
      puts "method #{method}"
    end
  end
end

更新:使用来自Ruby 1.9的define_singleton_method,它正确分配给eigenclass.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读