我想知道,为什么包含模块的方法会混入任何后续的类定义中(就好像该类本身包含它一样)?
module Foo
def bar
print "#{self}\n"
end
end
class Bar
end
begin
Bar.bar
rescue NoMethodError
puts "There is no Bar.bar\n"
end
include Foo
bar
Bar.bar
Bar.new.bar
印刷:
没有Bar.bar 主要的 酒吧 #<栏:0xb73f2048>
这是预期的行为吗?为什么?