大佬教程收集整理的这篇文章主要介绍了ruby – 我可以检测到一种方法已经被覆盖了吗?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
class Foo def hi end end class Bar < Foo def hi end end
并且假设我有一些代码,在这里我通过了Bar作为参数.
def check(X) do_something_with(x.method(:hi)) end
在上面的例子中,我可以知道x.hi(其中x引用了Bar的一个实例)与Foo#hi不同
根据加雷斯的回答,这是我到目前为止
def is_overridden?(method) name = method.name.to_sym return false if !method.owner.superclass.method_defined?(Name) method.owner != method.owner.superclass.instance_method(Name).owner end
可怕?华丽?
if x.method(:hi).owner == Foo
我远不是Ruby专家;如果有人比这更好,我不会感到惊讶.
以上是大佬教程为你收集整理的ruby – 我可以检测到一种方法已经被覆盖了吗?全部内容,希望文章能够帮你解决ruby – 我可以检测到一种方法已经被覆盖了吗?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。