ruby – define_method是否覆盖与其参数同名的方法?

ruby – define_method是否覆盖与其参数同名的方法?,第1张

概述我遇到过以下代码: class MethodLogger def log_method((klass,method_name) klass.class_eval do alias_method "#{method_name}_original" method_name define_method method_name do 我遇到过以下代码:

class MethodLogger    def log_method((klass,method_name)      klass.class_eval do        alias_method "#{method_name}_original" method_name        define_method method_name do          puts "#{Time.Now}: Called #{method_name}"          send "#{method_name}_original"        end      end    end  endclass Tweet def say_hi  puts "Hi" endendlogger =MethodLogger.newlogger.log_method(Tweet,:say_hi)

这给出了输出

2012-09-11 12:54:09 -400: Called say_hi

那么,define_method:say_hi如何覆盖原始方法:say_hi?或者define_method是否更改了原始方法定义?

解决方法 如果多次定义方法,则后面的所有定义都将覆盖旧的定义.只能有一个名称相同的方法. 总结

以上是内存溢出为你收集整理的ruby – define_method是否覆盖与其参数同名的方法?全部内容,希望文章能够帮你解决ruby – define_method是否覆盖与其参数同名的方法?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1281447.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存