module SomeMixin def foo puts "foo!" end end class Bar include SomeMixin def baz puts "baz!" end end b = Bar.new b.baz # => "baz!" b.foo # => "foo!" # 由于 mixin 工作
NowBar是它自己的方法和来自SomeMixin.
请注意,在类中如何使用 mixin 取决于它是如何添加的:
所述include关键字评价在类上下文模块代码(例如,方法的定义将在类的实例的方法),
extend 将在对象的单例类的上下文中评估模块代码(方法可直接在扩展对象上使用)。