我在想,为什么被包含的模块的方法混入到任何后续的类定义中(就好像类中包含了它自己一样)?在ruby mixins中的奇怪继承
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
打印:
There is no Bar.bar main Bar #<Bar:0xb73f2048>
这是预期的行为?为什么?
你期待什么? – 2010-07-24 17:38:34