关于Ruby对象的信息
我需要关于ruby中对象的信息帮助。在控制台中,我看到许多put“Module1”。为什么会这样?为什么我看到这么多“模块1”。我尝试使用以下代码:关于Ruby对象的信息,ruby,object,Ruby,Object,我需要关于ruby中对象的信息帮助。在控制台中,我看到许多put“Module1”。为什么会这样?为什么我看到这么多“模块1”。我尝试使用以下代码: class Object def method_missing(*args) puts 'Module1' super end end 这与ruby如何查找方法有很大关系。它穿过祖先树两次。第一次查找方法名称,第二次查找method\u missing 大多数对象继承自Obj
class Object
def method_missing(*args)
puts 'Module1'
super
end
end
这与ruby如何查找方法有很大关系。它穿过祖先树两次。第一次查找方法名称,第二次查找
method\u missing
大多数对象继承自Object
,因此调用Object
的method\u missing
并不罕见
如果您感兴趣,有很多资源可以更详细地解释这一点 您可以使用更具信息性的输出替换
put'Module1'
,例如打印以查看哪个类或方法调用method\u missing
(可能是IRB)。旁注:重新定义对象\method\u missing
,特别是使用错误的签名,这是一个非常糟糕的主意。另外:如果对象
没有定义的方法,super
可能不会有多大帮助。你看到这么多的“Module1”是因为你使用的是IRB或PRY,而这些并不完全是Ruby。