新手问题 如何查看某个 method 的属性?

kooder · 2017年09月17日 · 最后由 5long 回复于 2017年09月17日 · 1546 次阅读

比如,想查看某个 method 是 instance method 还是 class method,是 private 还是 public,除了用 Object 提供的类似调用 Object.instance_methods.grep /xxx/ 的方法间接查找外,有没有针对 method 本身的方法,可以详细的查看某个 method 的属性?

谢谢。

5long 回复

谢谢指点! 通过对文档里的 inspect 方法的返回值(AClass.method 或者 AClass#method)进行判断,可以用来区分 class method 还是 instance method。 但是,如果要判断 public 还是 private,似乎没提供直接的方法。

kooder 回复

如果你把这个页面里所有的方法名 ( http://ruby-doc.org/core-2.4.1/Method.html#method-list-section ) 都看一遍,你会发现有个方法叫做 #owner。也许方法所属的 class / module 处会有更多的关于可见性的信息,值得你继续调查下去。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号