一个简单的混合包括

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!"
# works thanks to the mixin

现在 Bar 是自己的方法和 SomeMixin 的方法的混合。

请注意,如何在类中使用 mixin 取决于它的添加方式:

  • include 关键字评估类上下文中的模块代码(例如,方法定义将是类实例上的方法),
  • extend 将在对象的单例类的上下文中评估模块代码(方法可直接在扩展对象上使用)。