【发布时间】:2013-03-01 07:16:26
【问题描述】:
来自Module
Module#append_features(mod) → mod => 当这个模块包含在另一个模块中时,Ruby 会在这个模块中调用 append_features,并将其传递给 mod 中的接收模块。 Ruby 的默认实现是将此模块的常量、方法和模块变量添加,如果此模块尚未添加到 mod 或其祖先之一。
Module#prepend_features(mod) → mod => 当这个模块被前置在另一个模块中时,Ruby 在这个模块中调用 prepend_features,将它传递给 mod 中的接收模块。如果此模块尚未添加到 mod 或其祖先之一,则 Ruby 的默认实现是将此模块的常量、方法和模块变量覆盖到 mod。
谁能帮我理解以下问题:
-
Module的哪些功能除了默认的之外还定义为append和prepend? -
它们在功能上有何不同?
-
何时使用
append_features,何时使用prepend_features? -
上面两条粗线有什么区别?
【问题讨论】:
标签: ruby mixins prepend ruby-2.0