Ruby:如何在没有对象的情况下获得类的方法?

Ruby:如何在没有对象的情况下获得类的方法?,ruby,reflection,Ruby,Reflection,“abc”.respond_to.(:sub)返回true,但String.respond_to.(:sub)返回false。 第二个返回false,因为它询问类的对象是否有方法子类,因为String是类的对象。方法()也是如此 如何做这些事情,特别是在不创建该类的对象的情况下响应?()。您可以使用方法定义?方法,在模块类中声明。如果您试图确认某个方法是否存在,String.method\u defined?:sub将起作用。如果您对实例方法特别感兴趣,请使用以下方法: String.insta

“abc”.respond_to.(:sub)返回true,但String.respond_to.(:sub)返回false。 第二个返回false,因为它询问类的对象是否有方法子类,因为String是类的对象。方法()也是如此


如何做这些事情,特别是在不创建该类的对象的情况下响应?()。

您可以使用
方法定义?
方法,在
模块
类中声明。

如果您试图确认某个方法是否存在,
String.method\u defined?:sub
将起作用。如果您对实例方法特别感兴趣,请使用以下方法:

String.instance_methods.index 'sub'
请注意,您必须使用字符串,而不是符号。

Array#include?比数组#索引更能显示意图。