打开 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 的了
self.private_methods
我发现用 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 的。