红宝石Module
有一个方法instance_methods
可以返回该类的方法列表。但是如何检索一个类的类方法列表?如何获取类方法?
如何获取类方法?
回答
class Song
def self.hello;end
end
p Song.singleton_methods
结果:
[:hello]
您可以将false
参数传递到Object#methods。
class Foo
def self.bar
end
end
Foo.methods(false) #=> [:bar]
将** s **添加到Object#方法及其链接。 –
好了,如果你有这样的:
object = Object.new
,你想要得到的Object
(的object
父)类方法列表,你可以得到通过:
object.class.methods
而且如果您有一些课程,比如说Samuel
,您可以通过Samuel.methods
轻松获得课程方法。您可以这样做,因为Samuel
是类类的实例,因此您可以像从普通对象那样获取其方法。
你需要知道的第一件事是,有没有这样的事情在Ruby中一个类的方法。我们口语上称之为“类方法”实际上只不过是一种正常的单例方法。 全部对象可以有单独的方法,没有什么特别的类。
实际上,没有任何东西作为单独的方法!我们口语上称之为“单例方法”的东西实际上只是对象单例类的常规无聊实例方法。
所以,既然你已经知道如何列出的实例方法,你现在知道了类方法实际上是实例方法,你已经知道如何回答你自己的问题:
class Foo; def self.bar; end end
class << Foo
instance_methods(false)
end
# => [:bar]
Foo.singleton_class.instance_methods(false)
# => [:bar]
然而,即使单方法实际上并不存在,它仍然是有用的谈论他们,上述结构是只是足够的不便,有其执行上述的实际上相当于专门的方法:
Foo.singleton_methods(false)
# => [:bar]
当使用singleton_methods,似乎false参数是没有必要的。 – uncutstone
- 1. 如何获取方法的类绑定?
- 2. 如何获取类的构造方法?
- 3. 如何从类型获取TryParse方法?
- 4. Java - 如何获取类调用方法
- 5. 如何获取调用静态方法的类和方法?
- 6. 方法获取类GregorianCalendar?
- 7. PHP获取子类方法
- 8. 如何获取findElementById方法?
- 9. 如何获取泛型方法参数的类型参数类?
- 10. 如何从Java中的超类方法获取子类值?
- 11. 如何从一个子类的静态方法获取类?
- 12. 如何获取类在.NET中输入基类静态方法?
- 13. 无法通过类方法获取csv
- 14. 如何从方法内部获取JavaScript类/实例方法的名称?
- 15. 如何在类中获取方法的地址?
- 16. 如何从类中获取方法的代码
- 17. 如何在测试设置方法中获取测试类别
- 18. 如何在C++中获取返回类型的重载方法?
- 19. 如何从groovy获取testStep的HTTP/REST方法类型
- 20. 如何获取子类的所有方法?
- 21. 如何从静态子方法获取类名称
- 22. 如何从AsyncTask类方法向MainActivity获取字符串?
- 23. 如何获取方法中的声明类?
- 24. 如何从Python中的静态方法获取(子)类名?
- 25. PHP:如何从静态方法获取类成员变量?
- 26. 如何获取此方法的调用者类
- 27. 如何从方法体获取定义类?
- 28. 如何获取类中的方法代码
- 29. ActiveRecord :: Relation上的类方法调用如何获取上下文?
- 30. 如何从继承的方法获取派生类的路径?
你W¯¯蚂蚁*类的方法*被** **仅在该特定的类中定义** **未了继承(/含),是吗? –