在Ruby中,如何定位到执行了响应方法调用的具体类?
- 内容介绍
- 文章标签
- 相关推荐
本文共计248个文字,预计阅读时间需要1分钟。
在Ruby中,如果我的类层次结构看起来像这样的结构(非符号):
A+B+C(宾语语序)+ 有一个在C类中定义的方法foo,
那么,是否存在一些内在的权限允许我确信C是定义了响应A.new.foo的方法的类?
是的,如果A是C的祖先类,并且C类中定义了方法foo,那么C的实例将继承这个方法。这意味着当你创建A的新实例并调用foo方法时,这个调用将被C类的方法响应。
例如:
rubyclass Aend
class B
class C
a=A.newa.new.foo # 输出: C's foo method
在这个例子中,虽然a是A的实例,但因为它也继承了C,所以调用new.foo会调用C中的foo方法。
所以,在 Ruby中,如果我的类层次结构看起来像(非常符号)A< B< C<宾语 有一个在C类中定义的方法“foo”,是否有一些内省允许我确定C是定义响应A.new.foo的方法的类?
是的……做A.new.method(:foo).owner.它会给你C班.阅读#owner.本文共计248个文字,预计阅读时间需要1分钟。
在Ruby中,如果我的类层次结构看起来像这样的结构(非符号):
A+B+C(宾语语序)+ 有一个在C类中定义的方法foo,
那么,是否存在一些内在的权限允许我确信C是定义了响应A.new.foo的方法的类?
是的,如果A是C的祖先类,并且C类中定义了方法foo,那么C的实例将继承这个方法。这意味着当你创建A的新实例并调用foo方法时,这个调用将被C类的方法响应。
例如:
rubyclass Aend
class B
class C
a=A.newa.new.foo # 输出: C's foo method
在这个例子中,虽然a是A的实例,但因为它也继承了C,所以调用new.foo会调用C中的foo方法。
所以,在 Ruby中,如果我的类层次结构看起来像(非常符号)A< B< C<宾语 有一个在C类中定义的方法“foo”,是否有一些内省允许我确定C是定义响应A.new.foo的方法的类?
是的……做A.new.method(:foo).owner.它会给你C班.阅读#owner.
