今天发现在顶层可以直接使用 include
module D
private
def hello
puts "hello"
end
end
include D
p self.class.ancestors # [Object, D, Kernel, BasicObject]
hello # hello
然后我把 main 对象和 Object 对象在 pry 里比较了一下,发现多出五个私有方法 [:include, :using, :public, :private, :define_method],好像都是 Module 里的方法 我想问的是,main 的祖先链里并没有 Module,这几个方法是怎么进去的?还有为什么要在 main 里加上这些方法?