【发布时间】:2023-03-26 12:11:01
【问题描述】:
刚刚开始了解 Ruby 元编程。 mixin/modules 总是让我感到困惑。
- include:在目标类中混入指定的模块方法作为实例方法
- extend:在目标类中混入指定的模块方法作为类方法
那么主要的区别是这个还是潜伏着一条更大的龙? 例如
module ReusableModule
def module_method
puts "Module Method: Hi there!"
end
end
class ClassThatIncludes
include ReusableModule
end
class ClassThatExtends
extend ReusableModule
end
puts "Include"
ClassThatIncludes.new.module_method # "Module Method: Hi there!"
puts "Extend"
ClassThatExtends.module_method # "Module Method: Hi there!"
【问题讨论】:
标签: ruby module include extend