我对
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.
原文地址:https://www.jb51.cc/ruby/267152.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。