该怎么检查Ruby对象的方法?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (32)

我想知道是否有一个Ruby方法调用只显示由它调用的Ruby对象定义的方法,而不是它的祖先类定义的所有方法,这methods似乎是做的。

提问于
用户回答回答于

methods接受一个可选的布尔参数,该布尔参数指定是否也列出来自对象的类及其超类的方法或仅列出对象的单例方法。所以可以做obj.methods(false)只得到在上定义的单例方法obj

如果你想要的是由对象的类定义的方法,而不是由它的超类定义的方法,那么你可以通过调用instance_methods(false)对象的类来实现,所以它就是这样obj.class.instance_methods(false)

用户回答回答于

我倾向于obj.methods.sort

也可以使用obj.methods.sort.grep /foo/

扫码关注云+社区