新手问题 ruby 2.0.0 和 1.9.3 函数区别

neffoor · 2013年09月08日 · 最后由 neffoor 回复于 2013年09月08日 · 3691 次阅读

打开 irb,直接定义一个 def aaa;end

ruby 2.0.0 时 self.methods 或 Object.instance_methods 中没有 [:aaa]

1.9.3 的 self.methods 或 Object.instance_methods 中有 [:aaa] 而且 1.9.3 这样定义后,所有对象都有了这个方法。

这个怎么理解?这样定义的方法算是 Oject 的实例方法吗,2.0.0 下是定义在哪里的?

try self.private_methods methods 貌似改成不显示 private 的了

我发现用 pry aaa 就在 private_methods 里面,用 irb 就在 public_methods 里面,看来这两个处理还有区别 ruby 1.9.3

谢谢 jjym,2.0.0 中 self.private_methods 里有了。刚刚试验了下,2.0.0 先调用 public,就和 1.9.3 一样了。应该是 2.0.0 中默认定义方法是 private 的。

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